Пользователь не найден при использовании 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...
    } 
Другие вопросы по тегам