首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角色- User.IsInRole的问题

角色- User.IsInRole的问题
EN

Stack Overflow用户
提问于 2013-04-20 03:52:52
回答 2查看 1.1K关注 0票数 2

我有一个注册页面,一旦用户单击submit按钮,就会将用户分配到以下角色:

代码语言:javascript
复制
    MembershipUser oMU;

    if (!(Roles.RoleExists("Stream")))
    {
        Roles.CreateRole("Stream");
    }

    oMU = Membership.CreateUser(txtUserName.Text.Trim(), txtPassword.Text.Trim(), txtEmail.Text.Trim());

    Membership.UpdateUser(oMU);

    Roles.AddUserToRole(oMU.UserName, "Stream");

当用户进入登录屏幕时,我会看到以下内容:

当用户登录时,我需要确保他们确实是该角色的一部分:

代码语言:javascript
复制
    if (User.IsInRole("Stream"))
    {

    }

但它永远不会进入User.IsInRole块。我需要做什么才能让注册的用户成为角色的一部分,以便它可以与User.IsInRole一起工作。

请注意,我有一个这样的文件夹,因此我需要他们成为流角色的一部分:

代码语言:javascript
复制
    <?xml version="1.0"?>
   <configuration>
   <system.web>
    <authorization>
        <deny users="*" />
        <allow roles="Stream" />           
    </authorization>
    </system.web>
  </configuration>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-20 04:00:29

<allow roles="Stream" />移至<deny users="*" />之上。否则,所有用户都将被拒绝。

代码语言:javascript
复制
<configuration>
   <system.web>
    <authorization>
        <allow roles="Stream" />    
        <deny users="*" />       
    </authorization>
    </system.web>
</configuration>

请确保您在web.config中拥有成员资格和RoleManager

以下是示例-

代码语言:javascript
复制
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear/>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="XXXXXSqlConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="XXXXX"/>
  </providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="false" defaultProvider="DefaultRoleProvider">
  <providers>
    <clear/>
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="XXXXXSqlConnection" applicationName="XXXXX"/>
  </providers>
</roleManager>
票数 1
EN

Stack Overflow用户

发布于 2013-04-20 04:06:22

尝试使用HttpContext获取当前登录用户:

代码语言:javascript
复制
if (HttpContext.Current.User.IsInRole("Stream"))
{

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16112536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档