【问题标题】:HTTP Error 404.0 - Not Found Membership Provider Authorization AccessHTTP 错误 404.0 - 未找到成员资格提供程序授权访问
【发布时间】:2013-07-10 14:29:33
【问题描述】:

我正在使用 Membership Provider 在我的站点中创建和管理用户和角色。我正在尝试使用 web.config 将特定角色的访问权限限制到使用此规则的此文件夹中的 Account 文件夹中:

<system.web>
  <authorization>
    <allow roles="Administrator"/>
    <deny users="*" />
  </authorization>
</system.web>

我正在使用如下所示的 Web 表单和表单身份验证:

<authentication mode="Forms">
  <forms loginUrl="~/Login.aspx" timeout="2880" defaultUrl="~/" />
</authentication>

但是当我尝试访问位于 Account 文件夹中的页面时,我得到了:

HTTP 错误 404.0 - 未找到 您要查找的资源已被删除、名称已更改或暂时不可用。下方有错误的图片:

当用户尝试访问未经授权的文件夹或网址时,我该如何重定向到登录?

【问题讨论】:

    标签: asp.net asp.net-membership membership-provider login-control


    【解决方案1】:

    您正在访问不存在的Login.aspx,例如/Account/Login/Default.aspx

    不应该是~/Account/Login.aspx吗?

    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
    

    如何调试?

    1. 确保您可以正确访问 Login.aspx。
    2. 然后像上面一样将该 URL 粘贴到 web.config 中的表单标记内。

    【讨论】:

    • 嗯,问题是生成url路径。该站点生成 /Account/Login?ReturnUrl=%2fAccount%2fUserBasedAuthorization.aspx 但未将扩展名 .aspx 放入 Login。我测试了 loginUrl="~/Acount/Login.aspx" 和 loginUrl="~/Acount/Login" ,我得到了同样的错误......另一个建议?
    • 你的Login.aspx在哪里?
    • 进入帐户文件夹,我添加 web.config 规则 为所有用户公开...
    • 可能和webmatrix有关 - stackoverflow.com/questions/5547608/… 能不能把&lt;add key="loginUrl" value="~/Account/Login.aspx" /&gt; 加到&lt;appSettings&gt; 再测试一下?
    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多