【问题标题】:Completely disable Forms authentication in ASP.NET在 ASP.NET 中完全禁用表单身份验证
【发布时间】: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


    【解决方案1】:

    如果您没有或集成 Windows 身份验证,请尝试启用匿名身份验证。如果您使用匿名身份验证,请确保 IIS 正在运行。

    另外,检查文件夹的属性并确保添加了权限。

    【讨论】:

    • 权限:每个人都可以完全访问该文件夹,所以这不是问题...我目前正坐在 VS 2010 的 ASP.NET 开发服务器下...将检查它是如何工作的真正的 IIS
    猜你喜欢
    • 2012-08-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多