【发布时间】:2014-09-15 04:39:55
【问题描述】:
我使用 Visual Studio 2013 和 Owin 中间件提供的默认访问控制创建了一个新的 ASP.NET MVC 5 应用程序。
我在 IIS 上启用了基本身份验证(禁用所有其他身份验证),以保护网站免受没有我在 Windows 上创建的用户/密码的人的侵害。这会导致浏览器中出现“重定向循环”。
任何想法为什么?如何在不更改代码的情况下保护网站?
【问题讨论】:
标签: asp.net-mvc iis owin
我使用 Visual Studio 2013 和 Owin 中间件提供的默认访问控制创建了一个新的 ASP.NET MVC 5 应用程序。
我在 IIS 上启用了基本身份验证(禁用所有其他身份验证),以保护网站免受没有我在 Windows 上创建的用户/密码的人的侵害。这会导致浏览器中出现“重定向循环”。
任何想法为什么?如何在不更改代码的情况下保护网站?
【问题讨论】:
标签: asp.net-mvc iis owin
默认情况下,在 Startup.Auth.cs 文件中,会有这样的内容:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Main/Account/Login"),
CookieName = "OwinAuthCookie",
});
当您在 IIS 中启用基本身份验证时,会发生以下情况:
HTTP 401 Response。401 (Unauthorized) Response,因此它重定向到配置的LoginPath。您可以做的是注释掉上面代码中的 LoginPath 属性。这应该会停止重定向循环,但也可以(但不一定,取决于您的实现)破坏应用程序用户的身份验证。
我最终完成的是实现一个小型 Owin 中间件并自己进行基本身份验证。
这些链接可能会有所帮助:
【讨论】: