2

ASP.NET プロジェクトで と を使用していFormsAuthenticationます。ASP.NET Memberships and Roles認証されたユーザーのみが表示/アクセスできる aspx ファイルがいくつかあります。次の2つの方法のいずれかを使用してこれを行うことができると思います。

  1. web.config ファイルの構成。ロール「admin」および「members」を持つユーザーにこれらの apsx ファイルへのアクセスを許可し、他のすべての匿名ユーザーを拒否します。

  2. これらのapsxファイルのpage_loadイベントで、現在のユーザーが認証されているかどうかを確認するだけですHttpContext.Current.User.Identity.IsAuthenticated

これら2つのアプローチがapsxファイルに対して同等かどうか疑問に思っています。

4

3 に答える 3

1

それらは同等ではありません。方法 1. 「管理者」ロールと「メンバー」ロールのみにアクセス権を付与します。別のロールを追加すると、アクセスできなくなります。方法 2 では、サインインしているすべてのユーザーがデータにアクセスできます。

どの役割がアクセスする必要があるかに応じて、aspxファイルをディレクトリに整理するのが好ましい方法だと思います。次に、web.config でディレクトリへのアクセスを構成します。

于 2012-07-31T17:38:19.477 に答える
1

他の人が言及しているように、これは同等ではありません。ただし、「2.」を変更しても。ロールをチェックするには、標準的な方法で簡単に処理できるものを処理するカスタム コードを導入するため、これは悪いアプローチです。

別のフォルダーweb.configを作成し、そこに制限されたページを置き、含める補助を作成する、さらに別のアプローチも検討してください。

...
<system.web>
   <authorization>   
       <allow roles="admin,members" />
       <deny users="*" />
   </authorization>   
</system.web>

このようにして、フォルダー、ページ、スタイル、画像内のすべてのリソースへの承認が必要になります。

于 2012-07-31T17:47:08.107 に答える
0

こんにちは、認証と承認を区別する必要があります

  1. 「HttpContext.Current.User.Identity.IsAuthenticated」は: 認証

  2. 「ロール「admin」および「members」を持つユーザーを許可する」は: 承認、認証後、承認を実行します

この記事を読むことができます: http://www.duke.edu/~rob/kerberos/authvauth.html

認証は、システムがユーザーを安全に識別するためのメカニズムです。認証システムは、次の質問に対する答えを提供します。

Who is the user?
Is the user really who he/she represents himself to be? 

認証システムは、次の質問に対する答えを提供します。

Is user X authorized to access resource R?
Is user X authorized to perform operation P?
Is user X authorized to perform operation P on resource R? 
于 2012-07-31T17:38:34.993 に答える