【发布时间】:2013-08-11 22:25:21
【问题描述】:
如何在 ASP.NET 应用程序中完全禁用 Forms 身份验证,并将其替换为自定义身份验证模块?
我在 web.config 中将身份验证模式设置为无
<authentication mode="None" />
并附上我自己的认证模块
<add name="CustomAuthenticationModule" type="CustomAuthenticationModule, Auth"/>
我的自定义认证模块有
application.AuthenticateRequest += new EventHandler(this.Application_AuthenticateRequest);
application.PostAuthenticateRequest += new EventHandler(this.Application_PostAuthenticateRequest);
application.AuthorizeRequest += new EventHandler(this.Application_AuthorizeRequest);
一切看起来都正常,除了一件事......当我尝试访问需要管理员角色的安全页面时
<location path="SomePage.aspx">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
我的处理程序没有捕获 AuthorizeRequest 事件。相反,我的请求将使用
返回到浏览器访问被拒绝。错误消息 401.2.:未经授权:登录失败 到服务器配置。验证您是否有权查看此内容 目录或页面基于您提供的凭据和 Web 服务器上启用的身份验证方法。联系网络 服务器管理员寻求更多帮助
看起来其他处理程序处理了请求并返回未经授权的请求代码?我不是完全禁用了表单身份验证还是错过了其他东西?
【问题讨论】:
标签: asp.net authentication authorization httpmodule custom-authentication