0

ASP.NET アプリケーションでユーザー ロールを適切に管理しているかどうかはよくわかりません。そのようなアプローチは正しいですか、それとも正しくないですか、それとも改善できますか?

すべてのユーザーがデータベースのユーザー テーブルに追加されます。たとえば、(userid、name、surname、isAdmin) などのフィールドがあります。

私のアプリケーションでは、次を使用してユーザー ID を取得します

Request.Servervariables.Get("LOGON_USER")

ページのレンダリング中に、SQL クエリを実行して、そのページの現在のユーザーが SQL Server に「isAdmin」パラメーター =「true」を持っているかどうかを確認します。はいの場合は、適切なコントロールをレンダリングして表示します。(例:管理者ページへのリンクボタン)

4

2 に答える 2

1

ASP.Net ロール プロバイダー (気に入らない場合は、独自のロール プロバイダーを作成して、基本的に同じことを行うことができますが、要件に準拠させることができます) は、この目的で非常に役立ちます。すべてのページの上部に SQL クエリを配置する代わりに (後で何か変更が必要になった場合に悪夢になります)、次のように言えます (ここで言い換えます)。

if (RoleProvider.IsUserInRole(Request.Servervariables.Get("LOGON_USER"), "Admin") == true)
{
   //populate page as admin
}
else
{
   //populate page as not admin
}
于 2012-06-28T06:35:57.103 に答える
1

これは正しい方法ではありません。メンバーシップ プロバイダーと簡単に統合できる asp.net roleprovider を使用する必要があります。ページ コントロール/アクセスを簡単に削減でき、ロール プロバイダーは非常に拡張可能でスケーラブルです。あなたのアプローチは非常に厳密であり、アプリケーションが大きくなると問題に直面する可能性があります。

于 2012-06-28T06:15:07.893 に答える