![](/img/trans.png)
[英]Getting HTTP 401.2 Unauthorized when porting old Web Forms to OWIN
[英]Access denied (401.2) when loading default documents using Owin with Identity 2.0
我们最近将一个使用 Forms 身份验证的 Framework 4.8 WebForms 项目转换为使用 Identity 2.0 身份验证,现在我们无法在不允许匿名访问的情况下访问默认文档或图像。
使用 Identity 进行身份验证后,如果您浏览到诸如 http://mysite/dashboard/default.aspx 之类的文件夹,它就可以正常工作。 但是,如果默认页面不在 http://mysite/dashboard/ 中的路径中,它会返回 401.2,就好像 IIS 需要权限才能为页面提供服务:
*访问被拒绝。 说明:访问服务此请求所需的资源时出错。 服务器可能未配置为访问所请求的 URL。
错误消息 401.2:未经授权:由于服务器配置导致登录失败。 根据您提供的凭据和在 Web 服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。 请联系 Web 服务器管理员以获得更多帮助。*
我们有<authentication mode="None">
我知道这对这种情况是正确的。 IIS 配置为使用默认文档,就像我们使用 Forms 身份验证时一样。
我们还使用System.Web.Security.UrlAuthorizationModule
拒绝未经身份验证的用户:
<authorization>
<deny users="?" />
</authorization>
如果我们允许对文件夹进行匿名访问,它确实有效,但我们不允许对这些位置进行匿名访问。
<location path="Dashboard">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
那么,您如何配置 IIS 以在没有“允许匿名”的情况下访问默认文档,以便它像在 Forms 身份验证下一样工作。
谢谢!!!
尝试将其添加到System.Webserver
部分
<modules>
<remove name="FormsAuthentication"/>
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
</modules>
关键似乎是从 FormsAuthentication 模块中删除 managedHandler Precondition。 据我了解,这只是为了优化 static 内容的服务。
发现将<modules runAllManagedModulesForAllRequests="true">
添加到web.config
解决问题。 不太确定为什么在这一点上。 我确实注意到对 static 文件的请求不包括在删除 Forms 身份验证之前有效的用户身份。 添加后,用户身份开始显示在请求中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.