Je suis d'essayer certaines des choses nouvelles dans VS2013 RC avec MVC5 et la nouvelle OWIN authentification middleware.
Donc, je suis habitué à l'utilisation de l' [Authorize]
attribut de limiter les actions par rôle, mais je suis en train d'utiliser et de réclamations basées sur l'activité de l'autorisation, et je ne peux pas trouver un équivalent de l'attribut pour elle.
Est-il évident que je suis absent ou dois-je roule mes propres? J'ai un peu attendu pour être l'un de la boîte.
Ce que je recherche plus précisément, c'est quelque chose le long des lignes de [Authorize("ClaimType","ClaimValue")]
, je suppose.
Merci à l'avance.
Mise à JOUR J'ai fini par écrire un attribut simple à gérer. Je ne pouvais pas trouver quoi que ce soit dans le cadre de la sortie de la boîte sans un paquet supplémentaire de config. Énumérés ci-dessous.
public class ClaimsAuthorizeAttribute : AuthorizeAttribute
{
private string claimType;
private string claimValue;
public ClaimsAuthorizeAttribute(string type, string value)
{
this.claimType = type;
this.claimValue = value;
}
public override void OnAuthorization(AuthorizationContext filterContext)
{
var user = HttpContext.Current.User as ClaimsPrincipal;
if (user.HasClaim(claimType, claimValue))
{
base.OnAuthorization(filterContext);
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
}
Bien sûr, vous pouvez supprimer le type et la valeur params si vous étiez heureux d'utiliser le contrôleur de l'action des verbes en-triplet pour les réclamations en quelque sorte.