2017-07-01 2 views
0

Ich programmiere eine WebApp mit MVC5 und ich werde überprüfen, ob ein Benutzer in einer bestimmten Rolle ist.AspNet.Idendity: Bestimmen, ob der Benutzer in einer bestimmten Rolle ist

Deshalb habe ich versucht, User.IsInRole("Role") zu verwenden, aber es löst eine Ausnahme aus. Ich habe versucht, mit AspNet.Identity importieren und mit Hilfe der Manager-Benutzer aber es kann die Methode nicht gefunden IsInRoleAsync(userId, role):

@using Microsoft.AspNet; 
@if(UserManager.IsInRoleAsync(user.Id, "Role")){ 
    // some code 
} 

Bitte beachten Sie, dass ich es in einer cshtml Datei und gestochen Syntax. Ich hoffe ihr könnt mir helfen.

Vielen Dank im Voraus

+0

Was ist die Fehlermeldung? – CodeNotFound

Antwort

1

Der Code UserManager.IsInRoleAsync nur in einer Razor Ansicht (cshtml) funktioniert nicht. Sie müssten eine ApplicationUserManager-Instanz, die normalerweise "UserManager" genannt wird, sowie ein gültiges ApplicationUser-Objekt ("Benutzer") instanziieren.

Sie sind besser dran, diese Arbeit in der Steuerung zu erledigen und sie mit einem View Model oder anderen Mitteln wie ViewBag oder ViewData an die View zu übergeben.

1

Hallo Sie können mit dem folgenden Code in Sicht leicht tun:

Ex: view1.cshtml

@if (Request.IsAuthenticated && User.IsInRole("Administrators")) 
{ 
    //Any code 

} 
+0

Leider hat es bei mir nicht funktioniert. Es löst eine SqlServerException aus. – user1937182

Verwandte Themen