ASP.NET中的成员实现

时间:2011-01-28 17:35:42

标签: asp.net visual-studio-2010

我想做以下

我的网站上有一些页面只能由具有某些角色的注册用户查看。

我正在使用ASP.NET成员资格来创建用户和角色。

如果用户在未登录的情况下尝试访问某个页面,如何将用户重定向到登录页面。

我尝试了asp配置页面。但它允许我仅在文件夹级别允许/拒绝权限。如何以最小的努力在页面级别实现相同的功能?


Hello Friends,非常感谢您的快速回复。他们真的很有帮助。你能否建议我在这个安全标签下寻找不同标签的解释,并附上一些例子和解释。尝试谷歌搜索..没什么用。

3 个答案:

答案 0 :(得分:3)

您可以在配置文件中使用location属性,例如:

<location path="somefile.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
        </authorization>
    </system.web>
</location>

或者您可以在page_load函数中使用此代码:

if (!Page.User.Identity.IsAuthenticated)
{
     FormsAuthentication.RedirectToLoginPage();
     return;
}

指定登录页面:

<system.web>
    <authentication mode="Forms">
      <forms loginUrl="~/Index.aspx" timeout="2880" />
    </authentication>
</system.web>

答案 1 :(得分:2)

你应该可以做这样的事情(显然根据你的需要改变授权部分):

  <location path="MyPage.aspx" allowOverride="true">
    <system.web>
      <authorization>
        <allow roles="Registered User"/>
        <deny users="*"/>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>

答案 2 :(得分:1)

配置web.config,您可以在页面级别应用允许/拒绝规则:

<?xml version="1.0"?>
<configuration>
  <location path="SecuredPage.aspx">
    <system.web>
      <authorization>
        <allow roles="SuperUsers" />
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>