La mise en œuvre de rôle basé sur l'autorisation de les utiliser .NET MVC 5
Je souhaite la mise en place d'une autorisation basée sur les rôles dans mon application web que je suis en train de construire. La façon dont je l'imaginais à faire c'est de créer 3 tables dans ma DB comme suit:
1. Roles
2. UserRoles (many to many table)
3. Users
Après que chaque utilisateur a un rôle qui lui est assigné. Maintenant... Ma question est, Comment puis-je autoriser ou interdire l'accès à certains points de vue et les contrôleurs à l'intérieur de mon .NET MVC de l'application. Je suis tombée sur ceci:
[Authorize(Roles = "HrAdmin, CanEnterPayroll")]
[HttpPost]
public ActionResult EnterPayroll(string id)
{
// . . . Enter some payroll . . .
}
L'Autoriser propriété semble être un facteur limitant spécifiques contrôleurs/actions à des rôles spécifiques... Mais si j'ai lu les rôles d'utilisateur à partir de la table UserRoles comme dans mon cas?? Comment est mon application va savoir quel est le rôle de l'Utilisateur sur le système ??
Quelqu'un peut-il m'aider à sortir avec cette ?
Vous avez besoin d'ajouter des Revendications avec vos rôles dans votre
Login()
méthode.Le ci-dessus est déjà mis en œuvre dans le cadre de l'Identité construite dans MVC5. Vous n'avez pas besoin de s'inquiéter à propos de la création de ces tables par vous-même, juste modifier la chaîne de connexion par défaut et de le pointer sur un serveur.
aha donc en gros je doit ajouter les rôles dans ces Revendications lors de la connexion de l'utilisateur et ensuite faire Autoriser[...] sur mon contrôleurs/actions ?? 🙂
yeap, c'est à peu près tout ce que vous devez faire.
OriginalL'auteur User987 | 2016-10-27
Vous devez vous connecter pour publier un commentaire.
Disons que vous avez enregistré votre nom d'utilisateur et les Rôles dans la Session:
J'ai essayé cette méthode, mais il est dit que AuthenticationManager classe ne contient SignIn méthode pour une raison :/
Ajouter
using Microsoft.Owin.Security
de référenceToujours le même message d'erreur s'affiche pour une raison quelconque
Voici MSDN à propos de
AuthenticationManager
classeOriginalL'auteur SeM
si vous Autorisez un rôle d'accéder à un contrôleur ( au niveau de la classe ) ou une action ( niveau de la fonction ) ils rôles auront accès. sinon l'accès est refusé.
si vous utilisez l'Autoriser mot-clé sans préciser les rôles ou les utilisateurs, tous les utilisateurs authentifiés ont accès.
espérons entièrement je suis clairement ?
à des allégations d'utilisation en fonction de l'identité reportez-vous à la
https://msdn.microsoft.com/en-gb/library/ee517291.aspx
https://msdn.microsoft.com/en-gb/library/ff359101.aspx
c'est sur la Base
Qu'est-ce que les revendications de l'ASP .NET Identité
oui revendications de base est un moyen de aller , j'ai modifié mon repos avec quelques liens qui peuvent vous aider à
OriginalL'auteur Emil
Voici quelques morceaux de code comment vous pouvez le faire en utilisant Azure Active Directory. La configuration de l'application au Démarrage.cs:
Et ici est l'utilisation:
et:
Voici mon blog sur: http://www.eidias.com/blog/2016/1/16/using-azure-active-directory-application-roles. Vous pouvez y trouver comment configurer au-dessus de rôles dans l'AAD.
OriginalL'auteur Dawid Rutkowski