8

Visual Studio 2015-Gerüst verwendet UserManager<TUser>, das nicht zum Erstellen von ClaimsIdentity verwendet werden kann. Hat jemand ein funktionierendes Beispiel, wie man das macht?Identitätsnachweis in Identity 3 erstellen

Das VS2015 Gerüst wirft Fehler:

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; 
} 

N. B .: Ich habe Eigenschaften ApplicationUser zugegeben, die mit IdentyUser nicht in Konflikt.

+0

Welchen Fehler wirft das Gerüst und wo? Die von Ihnen gepostete Methode zeigt, dass sie eine 'ClaimsIdentity' zurückgibt. – Nkosi

+0

UserManager enthält keine Definition für CreateIdentityAsync oder DefaultAuthenticationTypes – Ungaro

+0

Reproduzieren: VS2015 erstellt ein neues ASP.NET-Webprojekt mit der MVC 6-Vorlage. Fügen Sie unter Models in ApplicationUser.cs Verweise auf System.Security.Claims und Micosoft.AspNet.Identity hinzu, und fügen Sie den obigen Code in die ApplicationUser-Klasse ein. Siehe die im obigen Kommentar beschriebenen Fehler. – Ungaro

Antwort

10

UserManager hat sich in der MVC6-Version geändert. Sie müssen Ihren Code ändern ...

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

Vielen Dank, Nkosi! – Ungaro

+2

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

+0

Ich lernte, wie man DAL/DTO-Klassen zu einem neuen Projekt hinzufügt basierend auf ASPNETCORE aus dem öffentlichen Demo-Projekt Altostratus und festgestellt, dass sie zwei dieser asynchronen Methoden haben, nimmt man nur 'UserManager manager' und den anderen' UserManager manager, string authenticationType' werden beide benötigt? Wie ich in Ihrem sehe, codieren Sie einfach den Typ Nachricht. – Edward

Verwandte Themen