Пользователь не найден при использовании AddUserToRole
Я пытаюсь назначить пользователя на роль в членстве asp.net.
protected void btnAssignUser_Click(object sender, EventArgs e)
{
Roles.AddUserToRole("Upendra", "Admin");
}
но я продолжаю получать ошибку ниже.
Пользователь 'Upendra' не найден.
Тем не менее, пользователь "Upendra" действительно существует в таблице Users, а также роль "Admin" в таблице Roles.
Мои настройки web.config следующие
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=IROSHEN-PC;Initial Catalog=IndunilaDB;Integrated Security=true;" />
</connectionStrings>
<profile defaultProvider="DefaultProfileProvider">
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPXROLES"
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true"
cookieProtection="All" defaultProvider="DefaultRoleProvider" createPersistentCookie="false"
maxCachedResults="25">
<providers>
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="IndunillaWeb" />
</providers>
</roleManager>
1 ответ
Можете ли вы попробовать метод ниже и посмотреть, поможет ли это. По крайней мере, вы будете знать, что именно происходит с провайдером:
public void AssignUserToRole(string username, string roleName)
{
if (Roles.RoleExists(roleName))
{
string[] rolesArray = Roles.GetRolesForUser(username);
if (rolesArray.Length > 0)
{
// One user should be in one role so remove previous role
Roles.RemoveUserFromRoles(username, rolesArray);
}
Roles.AddUserToRole(username, roleName);
}
else
// RoleName does not exist, You may want to handle this case.
// May just add the role and call this method again or throw...
}