Je veux écrire mon propre attribut authorize (comme [autoriser] mais pas dans Asp .net Identity) pour vérifier db et si l'utilisateur n'a pas autorisé le rediriger vers quelque part. quelqu'un peut-il aider?Comment puis-je écrire un attribut personnalisé pour les fonctions de faire quelque chose et rediriger dans asp .net mvc 5 C#
-4
A
Répondre
0
Oui, vous pouvez créer votre attribut de customAuthorize, pour cela, vous pouvez hériter AuthorizeAttribute de classe asp.net et faites votre attribut comme: -
(je me sers dans mon projet)
public class CustomAuthorize : AuthorizeAttribute
{
private User_MasterEntities db = new User_MasterEntities();
protected override void HandleUnauthorizedRequest(System.Web.Mvc.AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAuthenticated)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Home", action = "Restricted" }));//new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var authorized = base.AuthorizeCore(httpContext);
if (!authorized)
{
// The user is not authenticated
return false;
}
string user = HttpContext.Current.User.Identity.Name;
bool isAdmin = IsAppUser(user);
return isAdmin;
}
et IsAppUser est votre fonction qui le retourne est admin ou non de la base de données
[Combien d'effort de recherche est attendu des utilisateurs de Stack Overflow?] (https://meta.stackoverflow.com/a/261593/3082296) – adiga
[I downvoted parce que la question ne montre pas evide nce de l'effort de recherche] (http://idownvotedbecau.se/noresearch/), et parce que c'est [pas une vraie question] (https://meta.stackoverflow.com/questions/284236/why-is-can-someone- aide-moi-pas-une-question-réelle). S'il vous plaît voir: [Pourquoi est-ce que quelqu'un peut m'aider? "Pas une question réelle?] (Http://meta.stackoverflow.com/q/284236) – EJoshuaS