【问题标题】:ASP.NET Role based accessASP.NET 基于角色的访问
【发布时间】:2011-10-12 01:15:02
【问题描述】:

我的网站结构如下:

我希望这样做是拒绝任何不是具有RegisteredUser 角色的登录用户的人,除了Reset.aspx 和Validation.aspx,它允许任何人(登录或不)访问,但现在不是这种情况。

不是RegisteredUser 的每个人都无法访问这两个页面,我做错了什么?

更新即使这样也行不通:

<?xml version="1.0"?>

<configuration>
  <location path="Reset.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

  <location path="Validation.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>

没有任何意义,这不应该是系统默认的吗?

【问题讨论】:

  • 您是否尝试过使用 ASP.NET 配置检查规则?使用解决方案资源管理器(或 Project\Website->ASP.NET 配置)右上角的小图标打开它。在 ASP.NET 配置中,使用安全 -> 访问规则 -> 管理相应文件夹的访问规则。
  • 你应该指定不带~/的路径
  • @coder net:在最初的问题中提到:“在 WebForms\Account 之前,我没有设置任何限制性规则,我在 web.config 中有以下配置:[...] ”。如果他使用放在文件夹中的 web.config(不是主文件夹),他不需要明确指定路径,只需指定文件名。
  • 好的,我没有注意到子文件夹 web.config。那么你可能是对的。这个应用程序中似乎有很多 web.config 文件。 :)

标签: asp.net membership roles


【解决方案1】:

您不需要映射路径,只需映射文件名:

<?xml version="1.0"?>

<configuration>
  <location path="Reset.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
        <deny />
      </authorization>
    </system.web>
  </location>

  <location path="Validation.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

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

【讨论】:

  • 感谢您的接受,但您是如何解决问题的?您在问题更新中描述了一个奇怪的行为。或者它只是一个本地错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2010-09-11
  • 2017-10-19
相关资源
最近更新 更多