如何在 ASP.NET 应用程序中完全禁用 Forms 身份验证并将其替换为自定义身份验证模块?
我在 web.config 中将身份验证模式设置为 None
<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 服务器上启用的身份验证方法,验证您是否有权查看此目录或页面。联系 Web 服务器的管理员以获得更多帮助
看起来其他处理程序处理了请求并返回未经授权的请求代码?我不是完全禁用了表单身份验证或错过了其他东西吗?