ASP.NET MVC 4 Personnalisé Autoriser Attribut avec la Permission des Codes (sans rôles)
J'ai besoin de contrôler l'accès à des vues basées sur les utilisateurs les niveaux de privilège (il n'y a pas des rôles que les niveaux de privilège pour l'opération CRUD niveaux affectés à des utilisateurs) dans mon MVC 4 application.
Comme un exemple; au-dessous de la AuthorizeUser sera mon attribut personnalisé et j'ai besoin de l'utiliser comme ceci:
[AuthorizeUser(AccessLevels="Read Invoice, Update Invoice")]
public ActionResult UpdateInvoice(int invoiceId)
{
//some code...
return View();
}
[AuthorizeUser(AccessLevels="Create Invoice")]
public ActionResult CreateNewInvoice()
{
//some code...
return View();
}
[AuthorizeUser(AccessLevels="Delete Invoice")]
public ActionResult DeleteInvoice(int invoiceId)
{
//some code...
return View();
}
Est-il possible de faire de cette façon?
Vous devez vous connecter pour publier un commentaire.
Je pourrais le faire avec un attribut personnalisé comme suit.
Classe Attribut personnalisé comme suit.
Vous pouvez rediriger un utilisateur non autorisé dans votre personnalisé
AuthorisationAttribute
en remplaçant laHandleUnauthorizedRequest
méthode:.Name.ToString()
est redondant, carName
propriété est déjà de la chaîneVoici une modification de la prev. réponse. La principale différence est que lorsque l'utilisateur n'est pas authentifié, il utilise l'original "HandleUnauthorizedRequest" méthode pour rediriger vers la page de connexion:
C'est peut-être utile à quelqu'un, dans l'avenir, j'ai mis en œuvre un custom Autoriser Attribut comme ceci:
Si vous utilisez l'API de WEB avec les Réclamations, vous pouvez utiliser ceci: