すべてのユーザーに 1 つのページのみを許可するベスト プラクティス

StackOverflow https://stackoverflow.com/questions/18460

  •  09-06-2019
  •  | 
  •  

質問

すべてのユーザーに asp.net Web サイト内の 1 つのページへのアクセスを許可する最善の方法は何ですか。

ログイン ページともう 1 つのページを除き、すべてのユーザーが Web サイト内のページを閲覧することを拒否します。

このページをすべてのユーザーがアクセスできるようにするにはどうすればよいですか?

役に立ちましたか?

解決

私はフォーム認証を使用し、通常は Windows 認証でのみ取得できる User.IsInRole タイプの関数を利用できるようにする必要な GenericIdentity オブジェクトと CustomPrincipal オブジェクトを作成してきました。

そうすれば、web.config ファイルで次のようなことができるようになります...

<location path="Login.aspx">
   <system.web>
      <authorization>
         <allow users ="*" />
      </authorization>
   </system.web>
</location>

<location path="ManagementFolder">
   <system.web>
      <authorization>
         <allow roles ="Administrator, Manager" />
      </authorization>
   </system.web>
</location>

他のヒント

私はそのようなことを処理する基本「ページ」クラスを作成しました。すべてのページを表示するためにログインが必要な場合は、すべてのページを RequiresLogin 属性で装飾できます。この属性が存在しない場合、そのページは誰でもアクセスできます。

例:

<RequiresLogin()> _ 
<RequiresPermission("process")> _
Partial Class DesignReviewEditProgressPage
    Inherits MyPage 'which inherits System.Web.UI.Page and deal with logins itself

    ...
End Class

MyPage クラスは、どの属性が自身にタグ付けされているかを確認し、RequiresLogin が存在する場合は、ログイン ページに転送します。

これはあなた自身の問題に合わせて調整できると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top