すべてのユーザーに 1 つのページのみを許可するベスト プラクティス
-
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 が存在する場合は、ログイン ページに転送します。
これはあなた自身の問題に合わせて調整できると思います。
所属していません StackOverflow