在Asp.Net MemeberShip中使用角色?

时间:2011-06-29 19:38:02

标签: asp.net asp.net-membership

嗯,问题很简单。

我如何在asp.net memebership中使用角色,

我知道我可以这样做:

<authorization>
<allow roles="Admin"/> //Allows users in Admin role

<deny users="*"/> // deny everyone else
</authorization>

</system.web>
</location>

但是,我在哪里可以说用户'admin'是Role:Admin ..?

2 个答案:

答案 0 :(得分:1)

您需要拥有RoleProvider http://msdn.microsoft.com/en-us/library/8fw7xh74.aspx

如果您使用的是Windows身份验证,则角色将是您的AD群组。

如果您使用的是表单身份验证,则可以实现自己的RoleProvider或使用SQL Role Provider。

http://msdn.microsoft.com/en-us/library/system.web.security.sqlroleprovider.aspx

答案 1 :(得分:1)

这只是冰山的一角。您需要ASP.Net成员身份和角色提供程序,并配置一些设置。您可以实现自己的提供程序,但使用默认提供程序更容易。

http://www.codeproject.com/KB/aspnet/SQL-Membership.aspx

http://odetocode.com/articles/427.aspx

<system.web>

    <membership>
        <providers>
            <remove name="AspNetSqlMembershipProvider"/>
            <add applicationName="YOURAPPNAME" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ASPNETDBConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
        </providers>
    </membership>
    <roleManager enabled="true" cacheRolesInCookie="false">
        <providers>
            <remove name="AspNetSqlRoleProvider"/>
            <add applicationName="YOURAPPNAME" connectionStringName="ASPNETDBConnectionString" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </providers>
    </roleManager>

</system.web>