【问题标题】:OWIN Authentication with IIS Basic Authentication使用 IIS 基本身份验证的 OWIN 身份验证
【发布时间】:2014-09-15 04:39:55
【问题描述】:

我使用 Visual Studio 2013 和 Owin 中间件提供的默认访问控制创建了一个新的 ASP.NET MVC 5 应用程序。

我在 IIS 上启用了基本身份验证(禁用所有其他身份验证),以保护网站免受没有我在 Windows 上创建的用户/密码的人的侵害。这会导致浏览器中出现“重定向循环”。

任何想法为什么?如何在不更改代码的情况下保护网站?

【问题讨论】:

    标签: asp.net-mvc iis owin


    【解决方案1】:

    默认情况下,在 Startup.Auth.cs 文件中,会有这样的内容:

     app.UseCookieAuthentication(new CookieAuthenticationOptions
                {
                    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                    LoginPath = new PathString("/Main/Account/Login"),
                    CookieName = "OwinAuthCookie",
                });
    

    当您在 IIS 中启用基本身份验证时,会发生以下情况:

    1. IIS 基本身份验证模块看到没有身份验证标头,因此它返回一个HTTP 401 Response
    2. 响应不会立即返回,而是由 Owin 处理。
    3. Owin 看到请求得到了401 (Unauthorized) Response,因此它重定向到配置的LoginPath
    4. 您的浏览器处理重定向,尝试打开新 URL,然后我们回到第 1 点。这就是循环。

    您可以做的是注释掉上面代码中的 LoginPath 属性。这应该会停止重定向循环,但也可以(但不一定,取决于您的实现)破坏应用程序用户的身份验证。

    我最终完成的是实现一个小型 Owin 中间件并自己进行基本身份验证。

    这些链接可能会有所帮助:

    【讨论】:

    • 我也这样做了。我创建了一个页面来验证用户并禁用基本身份验证。
    猜你喜欢
    • 2015-09-23
    • 2019-01-28
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多