2017-10-17 17 views
-4

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#

+2

[Combien d'effort de recherche est attendu des utilisateurs de Stack Overflow?] (https://meta.stackoverflow.com/a/261593/3082296) – adiga

+1

[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

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