在Windows Server 2008中的IIS7中,我有一个虚拟目录,具有匿名访问权限和Windows身份验证.在我的web.config中,我有:
<authentication mode="Windows"/> <authorization> <allow roles="MYGROUP"/> <deny users="*"/> </authorization>
和
<system.webServer> <!-- IIS7 security settings --> <security> <authorization> <add accesstype="Deny" users="*"/> <add accesstype="Allow" roles="MYGROUP"/> </authorization> </security> </system.webServer>
然而当我从IE访问default.aspx并在Global.asax.vb Application_AuthenticateRequest()中设置一个断点时,我得到一个null HttpContext.Current.User,我希望自己的身份.几乎就像匿名访问一样?
我可以如何解决这个问题?一切似乎都在IIS6中运行.
解决方法
将应用程序池移回古典的答案只是拖延问题.
而是将应用程序池单独放置,并将您的验证检查从Application_AuthenticateRequest()移动到管道中的下一个函数:
Application_AuthorizeRequest(object sender,EventArgs e)
到那时,集成的应用程序池已经完成了Windows身份验证,允许您不从HttpContext.Current.User接收null.
可以在标题Runtime Fidelity(向下))找到流水线here(由CarlosAg提供的链接).
管道的可视化可以在asp website message lifecycle page找到.在控制器部分检查两个绿色框“认证过滤器”和“授权过滤器”.这些是你正在搞乱的地方.
原文地址:https://www.jb51.cc/aspnet/250682.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。