2012-02-09 17 views
6

ASP.NET WebフォームからASP.NET MVC 3にアプリケーションを移行しています。現在、集中して重要な部分の1つが、独自のディレクトリでロックされています。ASP.NET MVC 3のカスタム権限

<location path="home" allowOverride="false"> 
    <system.web> 
    <authorization> 
     <deny users="?"/> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</location> 

私の質問は、どのように私はASP.NET MVC 3におけるセキュリティのこの同じタイプを実装してくださいされています。私は私のweb.configファイルに次のように使用して、このディレクトリにアクセスする権限のないユーザーを制限していますか?私はそれが私のコントローラクラスの属性を設定することに就いています。しかし、AuthorizeAttributeは、認証ステータスではなくユーザー名のリストのみを受け入れるように見えます(間違っていると私を修正してください)。私はサンプルASP.NETインターネットアプリケーションを見て、私はそれに設定されている特別なものは見ませんでした。

誰かがこれについて正しい方向で私を指摘できますか?

ありがとうございます!正しいです

+0

私の質問に受け入れられた答えを見てください:http://stackoverflow.com/q/746998/1796 –

答えて

5

、あなたはそうのように、AuthorizeAttributeを利用されます:「認証状況」については

[Authorize] 
public ActionResult AuthenticatedUsers() 
{ 
    return View(); 
} 

[Authorize(Roles = "Role1, Role2")] 
public ActionResult SomeRoles() 
{ 
    return View(); 
} 

[Authorize(Users = "User1, User2")] 
public ActionResult SomeUsers() 
{ 
    return View(); 
} 

、私は私はあなたが何を意味するか知っているかわかりません。 Rolesがその認証要件を処理するように思えます。

+0

'[Authorize]' attriuteは、それらが一般に認証されていることを確認する必要があります。私がそれを読んで、それがOPが探しているものです。私は彼がRolesパラメータが必要であるという印象を受けるかもしれないと思う。また、これらの属性をコントローラクラス自体に適用して、メソッドごとに定義するのではなく、すべて同じ方法で処理できることに注意してください。 –

0

必要に応じて、引き続きweb.configで承認を行うことができます。ほとんどの人は[Authorize]フィルタを使用してアクションまたはコントローラ全体(またはベースコントローラ)に権限を移動します。

承認フィルタは、web.configファイルは(「認証」と「匿名」のための*を使用すると?)場合と同じ役割またはユーザーをサポートしています

あなたがチェックのためにユーザーとロールはそれを行うことはありません場合カスタム属性を認可作成に関するこの記事から:

ASP.NET MVC Custom Authorization

0

あなたは、コントローラに入れた場合、これらの権限はなります(ユーザーまたはロールがコントローラにアクセスする権限を持っているであろうと言うするには、authorize属性を使用します。このコントローラー内のすべてのアクションに対して設定されています)またはアクションです。見てください:http://build.mt.gov/2011/10/27/aspnet-mvc3-and-the-authorize-attribute.aspx。 Rembemberは、asp.net webformsと同じように(特定のユーザーから)あなたの役割を提供するRoleProviderになります。