角色 - 与问题User.IsInRole [英] Roles - Issue with User.IsInRole
问题描述
我有其中用户分配给角色一个注册页面,一旦用户点击提交按钮如下:
OMU的MembershipUser; 如果(!(Roles.RoleExists(流)))
{
Roles.CreateRole(流);
} OMU = Membership.CreateUser(txtUserName.Text.Trim(),txtPassword.Text.Trim(),txtEmail.Text.Trim()); Membership.UpdateUser(OMU); Roles.AddUserToRole(oMU.UserName,流);
当用户进入一个登录界面,我有以下几点:
当用户登录时,我需要确保他们确实是那个角色的一部分:
如果(User.IsInRole(流))
{ }
但它从未进入User.IsInRole块。我需要做什么才能有谁注册的是角色,使得它与User.IsInRole的一部分用户执行。
请注意,我有一个文件夹,这样,所以我需要他们的角色流的一部分:
<?XML版本=1.0&GT?;
<结构>
<&的System.Web GT;
<授权>
<拒绝用户=*/>
<让角色=流/>
< /授权>
< /system.web>
< /结构>
移动<让角色=流/>
上方&LT ;拒绝用户=*/>
。否则,所有用户都将被拒绝。
<结构>
<&的System.Web GT;
<授权>
<让角色=流/>
<拒绝用户=*/>
< /授权>
< /system.web>
< /结构>
请确保您有在web.config中成员和RoleManager
下面是示例 -
<会员defaultProvider =DefaultMembershipProvider>
<供应商>
<清/>
<添加名称=DefaultMembershipProviderTYPE =System.Web.Providers.DefaultMembershipProvider,System.Web.Providers,版本= 1.0.0.0,文化=中性公钥= 31bf3856ad364e35的connectionStringName =XXXXXSqlConnectionenablePasswordRetrieval =false的enablePasswordReset设置=真requiresQuestionAndAnswer =假requiresUniqueEmail =假maxInvalidPasswordAttempts =5minRequiredPasswordLength =6minRequiredNonalphanumericCharacters =0passwordAttemptWindow =10的applicationName =XXXXX/>
< /供应商>
< /会员>
< roleManager启用=真cacheRolesInCookie =假defaultProvider =DefaultRoleProvider>
<供应商>
<清/>
<添加名称=DefaultRoleProviderTYPE =System.Web.Providers.DefaultRoleProvider,System.Web.Providers,版本= 1.0.0.0,文化=中性公钥= 31bf3856ad364e35的connectionStringName =XXXXXSqlConnection的applicationName =XXXXX/ >
< /供应商>
< / roleManager>
I have a register page where the user is assigned to a role as follows once the user clicks on the submit button:
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");
When the user goes to a login screen, I have the following:
When the user logs in, I need to make sure that they indeed are part of that role:
if (User.IsInRole("Stream"))
{
}
but it never goes into the User.IsInRole block. What do I need to do in order to have the user who registered be part of the Role such that it works with User.IsInRole.
Note that I have a folder as such so I need them to be part of the Streaming Role:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="*" />
<allow roles="Stream" />
</authorization>
</system.web>
</configuration>
Move <allow roles="Stream" />
above <deny users="*" />
. Otherwise, all users will be denied.
<configuration>
<system.web>
<authorization>
<allow roles="Stream" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
Make sure to you have membership and RoleManager in web.config
Here is the sample -
<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>
这篇关于角色 - 与问题User.IsInRole的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!