2017-10-17 7 views
-4

私はdbをチェックインするために独自のauthorize属性([authorize]ユーザーは彼をどこかにリダイレクトする権限を持っていません。誰も助けることができますか?どうすれば、何かを行い、asp .net mvc 5でリダイレクトする関数のカスタム属性を書くことができますか?c#

+2

[Stack Overflowユーザーの研究努力の程度](https://meta.stackoverflow.com/a/261593/3082296) – adiga

+1

[I問題は何の証拠もないので下降した(実際の質問ではないので)(https://meta.stackoverflow.com/questions/284236/why-is-can-someone-http://www.intelvotedbecau.se/noresearch/)ヘルプ - 私 - は - 実際の質問)。参照してください:[なぜ誰かが私を助けることができますか?実際の質問ではありませんか?](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かどうかを返す関数です

関連する問題