0

in meinem Projekt habe ich einen Benutzer mit 2-Position, so, Ich habe einen Benutzer mit zwei Rollen in AspNetUserRoles Tabelle in meiner Datenbank hinzugefügt,mehr Rollen für einen Benutzer in aspnet Identität

so zum Beispiel, mein Benutzer mit diesem Namen: „[email protected]“ hat zwei Rollen: „accountant“ und „ExecutiveExpert

aber wenn ich User.IsInRole("ExecutiveExpert") Funktion aufrufen, es überprüfen die erste Rolle: accountant, nicht alle Rollen (Buchhalter und ExecutiveExpert) und es gibt false zurück,

Wie kann ich die asp.net-Identität ändern, um alle Benutzerrollen zu überprüfen? ist es generell möglich?

sind meine Tabellen sind:

[AspNetUsers]:ID: c35721e2-05ef-4c32-8915-b4ad117c5a98 

[AspNetRoles]:  
Id          Name  
743f5c09-2b94-4da6-ab1c-9c9a6c9373b7 accountant  
845efdf6-ab07-475c-9eb1-b14365b1a54c ExecutiveExpert 

[AspNetUserRoles]:  
userID         RoleID  
c35721e2-05ef-4c32-8915-b4ad117c5a98 743f5c09-2b94-4da6-ab1c-9c9a6c9373b7  
c35721e2-05ef-4c32-8915-b4ad117c5a98 845efdf6-ab07-475c-9eb1-b14365b1a54c 
+0

Ich verstehe nicht, was Sie sagen. 'User.IsInRole' gibt Ihnen nur einen booleschen Wert. Wenn es die angegebene Rolle hat, werden Sie wahr, sonst falsch. – mason

+0

Sie müssen eine 'Zeichenfolge' an' IsInRole' übergeben. Siehe [die Dokumente] (https://msdn.microsoft.com/en-us/library/system.web.security.roleprincipal.isinrole (v = vs.110) .aspx) –

+0

@ Mason: Ich nur meine Frage bearbeiten , würdest du es bitte noch einmal lesen? Danke. –

Antwort

1

In diesem Fall wird die Sicherheit Tempel aktualisiert. Sie müssen den Sicherheitsstempel speziell erneuern/zurücksetzen.

Dies wird dazu beitragen, Ihr Problem zu beheben.

Verwandte Themen