2017-10-17 3 views
-4

[authorize]와 같은 권한 부여 특성 (예 : Asp .net ID)을 작성하여 db 및 if를 체크인하려고합니다. 사용자가 그를 다른 곳으로 리디렉션 할 수있는 권한을 부여하지 않았습니다. 누구든지 도와 줄 수 있습니까?어떻게 뭔가를 할 함수에 대한 사용자 지정 특성을 작성하고 ASP에서 리디렉션 할 수 있습니다 .net mvc 5 C#

+2

[Stack Overflow 사용자의 연구 노력은 얼마나 될까요?] (https://meta.stackoverflow.com/a/261593/3082296) – adiga

+1

[I 질문은 아무런 증거가 없기 때문에 하향 투표했다. 연구 노력의 nce] (http://idownvotedbecau.se/noresearch/)와 그것이 [진짜 질문이 아니기 때문에] (https://meta.stackoverflow.com/questions/284236/why-is-can-someone- 도움 말 - 실제 - 질문). 참조하십시오 : [왜 누군가가 나를 도울 수 있습니까? 실제 질문이 아닌가요?] (http://meta.stackoverflow.com/q/284236) – EJoshuaS

답변

0

예, 당신의 customAuthorize의 attribut를 만들 수 있습니다 이것에 대한 당신은 asp.net 클래스에서 AuthorizeAttribute을 상속 할 수 있으며처럼 attribut합니다 -

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; 

    } 

(나는 내 ​​프로젝트에서 이것을 사용하고 있습니다) 및 IsAppUser 함수는 데이터베이스에서 admin이거나 반환하지 않습니다.

관련 문제