8

Il ponteggio di Visual Studio 2015 utilizza UserManager<TUser> che non può essere utilizzato per creare ClaimsIdentity. Qualcuno ha un esempio funzionante su come farlo?Crea identità attestazioni nell'identità 3

Il ponteggio VS2015 genera errori:

public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
{ 
    // Note the authenticationType must match the one 
    // defined in CookieAuthenticationOptions.AuthenticationType 
    var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 

    // Add custom user claims here 
    return userIdentity; 
} 

NB .: ho aggiunto proprietà a ApplicationUser che non siano in contrasto con IdentyUser.

+0

Che errore lancia l'impalcatura e dove? Il metodo che hai pubblicato mostra che restituisce un 'ClaimsIdentity' – Nkosi

+0

UserManager non contiene una definizione per CreateIdentityAsync o DefaultAuthenticationTypes – Ungaro

+0

Per riprodurre: VS2015 crea un nuovo progetto Web ASP.NET con il modello MVC 6. In Modelli in ApplicationUser.cs, aggiungi riferimenti a System.Security.Claims e Micosoft.AspNet.Identity e inserisci il codice sopra nella classe ApplicationUser. Vedi gli errori descritti nel commento sopra. – Ungaro

risposta

10

UserManager è stato modificato nella versione MVC6. Dovrai modificare il tuo codice ...

public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) { 
    var authenticationType = "Put authentication type Here"; 
    var userIdentity = new ClaimsIdentity(await manager.GetClaimsAsync(this), authenticationType); 

    // Add custom user claims here 
    return userIdentity; 
} 
+0

Grazie, Nkosi! – Ungaro

+2

AuthenticationType: https://msdn.microsoft.com/en-us/library/system.security.claims.authenticationtypes(v=vs.110).aspx – Ungaro

+0

Stavo imparando come aggiungere classi DAL/DTO a un nuovo progetto basato su ASPNETCORE dal progetto dimostrativo pubblico Altostratus e notato che hanno due di questi metodi asincroni, uno richiede solo "UserManager manager' e l'altro richiede' UserManager manager, string authenticationType' sono entrambi necessari? Come vedo nel tuo solo codice, il tipo messaggio. – Edward