c# - mvc - asp.net identity tutorial español



Las funciones de usuario de comprobación de identidad de ASP.NET no funcionan (2)

Tengo una aplicación MVC 5 ASP.NET. Estoy usando el proveedor de identidad estándar de ASP.NET para la administración de usuarios y roles. Es importante que esté usando el IdentityUser de un proyecto de repositorio propio, pero esto parece estar bien. Puedo registrarme, iniciar sesión, editar usuarios y administrar sus roles.

Agrego usuario a Rol con estas lineas:

UserManager.AddToRole(userdetail.Id, r);
db.Entry(userdetail).State = EntityState.Modified;
db.SaveChanges();

Esto parece funcionar en el nivel DB.

Pero, no puedo usar autenticaciones basadas en roles, en realidad los simples

HttpContext.User.IsInRole("Administrator")

no funciona demasiado

[Authorize(Roles="Administrator")]

no funciona demasiado

Solo puedo verificar con este método, si el usuario es un administrador:

UserManager.IsInRole(userID, "Administrator").

¿Por qué?

En cada tutorial lo que encontré, todo funciona bien. ¿El diferente repositorio de proyectos podría ser la razón? ¿O la identidad de ASP.NET está tan rota?

Por favor aconséjame,


Answer #1

¿Tienes esta entrada en tu web.config?

    <roleManager enabled="true">
        <providers>
            <clear />
            <add connectionStringName="ApplicationServices" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" applicationName="/" />
        </providers>
    </roleManager>

Además, si recuerdo correctamente, hay un espacio de nombres diferente para el ensamblaje del proveedor de roles en diferentes versiones de .NET.


Answer #2

En ese caso, debe cerrar sesión e iniciar sesión nuevamente en el usuario.

Debido a que los datos de los roles también se almacenan en las cookies, debe emitir la cookie nuevamente para que funcione.





asp.net-identity