加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 使用IIS基本身份验证的OWIN身份验证

发布时间:2020-12-15 20:53:39 所属栏目:asp.Net 来源:网络整理
导读:我创建了一个新的ASP.NET MVC 5应用程序,它具有Visual Studio 2013和Owin Middleware提供的默认访问控制. 我在IIS上启用了基本身份验证(禁用所有其他身份验证),以保护站点免受那些没有我在Windows上创建的用户/密码的人的攻击.它导致浏览器中的“重定向循环
我创建了一个新的ASP.NET MVC 5应用程序,它具有Visual Studio 2013和Owin Middleware提供的默认访问控制.

我在IIS上启用了基本身份验证(禁用所有其他身份验证),以保护站点免受那些没有我在Windows上创建的用户/密码的人的攻击.它导致浏览器中的“重定向循环”.

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

解决方法

默认情况下,文件Startup.Auth.cs中会出现如下内容:
app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,LoginPath = new PathString("/Main/Account/Login"),CookieName = "OwinAuthCookie",});

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

> IIS基本身份验证模块发现没有身份验证标头,因此它返回HTTP 401响应.
>响应不会立即返回,但由Owin处理.
> Owin看到请求获得401(未授权)响应,因此它重定向到配置的LoginPath.
>您的浏览器处理重定向,尝试打开新的URL,然后我们回到第1点.这是循环.

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

我最终得到的是实现一个小的Owin中间件并自己进行基本身份验证.

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

> Writing an OWIN Authentication Middleware
> Basic Authentication with ASP.NET Web API Using OWIN Middleware
> Thinktecture.IdentityModel on GitHub

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读