2016-04-29 12 views
-1

私はユーザーとデータベースを持っている、ユーザーは異なる役割を持つことができます。MVC Web APIのカスタム基本認証

私はMVC Web APIの基本認証を実装したいので、Authorizeタグでメソッドにタグを付け、さらにuserTypeをパラメータとして渡したいと考えています。

[Authorize(admin)] 
public bool Test() 
{ 
} 

[Authorize(user)] 
public bool Test1() 
{ 
} 

私は単にメソッドは常にfalseを返します属性を作るのですかたとえば、この属性を作成する方法を見つけ出すことはできませんか?

私はいくつかのアドバイスをお探ししています。

EDIT:

私は以下のクラスを作った:

ilterContext.HttpContext.Response.StatusCode = 401; 
        filterContext.Result = new EmptyResult(); 
        filterContext.HttpContext.Response.End(); 
       } 
      } 
     } 

     private void CacheValidateHandler(HttpContext context, object data, ref HttpValidationStatus validationStatus) 
     { 

はその後、私はこの方法に[BasicAuthorize]追加したが、それはまだ私が基本的なautenticationずにアクセスしてみましょう。

+0

ロールはチェックしたいが、コードではユーザー名とパスワードをデータレイヤーでチェックします。あなたの役割チェックはどこですか? –

+0

私は基本的な認証が機能するようにしようとしていましたが、BasicAuthorizeAttributeを今すぐ実行するコードを取得できません。 –

答えて

0

許可と認証についての基本と、どのように属性を適用できるのかをお読みになることをお勧めします。

ロールはそのままの状態です。あなたがSystem.Web.Mvc.AuthorizeAttributeからではなくSystem.Attributeから継承する必要があるカスタム実装が必要な場合は

[Authorize(Roles="admin")] 
public bool Test() 
{ 
} 

:例:ちょうどAuthorize属性の組み込み機能を使用します。他のすべてはここからかなりまっすぐです。 Basic Authorization Attribute in ASP.NET MVC

+0

私はあなたのリンクでコードを試しましたが、まだ動作しません、私の質問を更新してください、参照してください。 –

+0

その原則を理解せずにコードをコピー&ペーストするだけのようです。あなたは役割 "admin"を持っていますか?それが私の言及されたダミーサンプルがうまくいかない理由です。また、 'Roles'プロパティは意図した用途に従って使用してください。 –