【问题标题】:Forms authentication web forms Error message 401.2 Access is denied表单身份验证 Web 表单错误消息 401.2 访问被拒绝
【发布时间】:2016-02-19 23:43:55
【问题描述】:

所以我正在尝试进行表单身份验证,问题是当我尝试转到我的 login.aspx 页面时出现 401.2 错误,我正在使用 iisexpress

 <authorization>
  <deny users="?"/>
</authorization>

<authentication mode="Forms">
<!--<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" path="/"></forms>-->
  <!--<forms loginUrl="Login.aspx" timeout="2880" defaultUrl="/" />-->
</authentication>

我尝试添加这个,但它没有解决我的问题

   <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>
     <location path="Content">
        <system.web>
          <authorization>
            <allow users="?" />
          </authorization>
        </system.web>
     </location>

  <location path="fonts">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>

  </location>
  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>

我搜索并尝试了几种解决方案,但没有机会您知道吗?

【问题讨论】:

    标签: asp.net webforms forms-authentication unauthorized


    【解决方案1】:

    来自 MSDN 的简单表单身份验证

    <system.web>
      <authentication mode="Forms">
        <forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
        </forms>
      </authentication>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
    

    我在书签http://weblogs.asp.net/gurusarkar/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config中有非常清晰和好的文章

    【讨论】:

    • 您好,感谢您的回复,我这样做了,但没有成功
    • 我想让每个人甚至匿名用户都可以进入登录页面,但我遇到了同样的错误
    • 我已经更新了最简单配置的答案,如果您尝试访问 logn.aspx 和任何其他页面,请检查它是如何工作的,以继续前进
    • 虽然不清楚发生了什么,请查看 IIS 管理器中的站点功能视图,确保存在 ASP.NET 部分,如果存在,请转到 IIS 部分中的身份验证进行确保您的配置有效并且表单身份验证已启用状态和 HTTP 302 登录/重定向响应,还要检查 IIS 模块中是否有 FormsAuthentication
    • 也许你有类似的问题(忽略我的 web.config 文件并应用不同的身份验证)stackoverflow.com/questions/19515890/…
    【解决方案2】:

    最后我做了一个这样的workarround 我删除了这部分:

    <authorization>
      <deny users="?"/>
    </authorization>
    

    然后我像这样修改了位置标签:

    <location path="Login.aspx">
        <system.web>
          <authorization>
            <allow users="?"/>
          </authorization>
        </system.web>
      </location>
      <location path="Default.aspx">
        <system.web>
          <authorization>
            <deny users="?"/>
          </authorization>
        </system.web>
      </location>
      <location path="Users.aspx">
        <system.web>
          <authorization>
            <deny users="?"/>
          </authorization>
        </system.web>
      </location>
      <location path="Content">
        <system.web>
          <authorization>
            <allow users="?"/>
          </authorization>
        </system.web>
      </location>
      <location path="fonts">
        <system.web>
          <authorization>
            <allow users="?"/>
          </authorization>
        </system.web>
    
      </location>
      <location path="Scripts">
        <system.web>
          <authorization>
            <allow users="?"/>
          </authorization>
        </system.web>
      </location>
    

    所以当我去默认或用户页面时,我会自动重定向到登录页面。 我真的进行了很多搜索以了解我做错了什么,但没有发现,所以我目前正在采用这个解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      相关资源
      最近更新 更多