0

これは奇妙な質問だと思います。基本的に、web.config ファイルを使用して特定のユーザーへのアクセスを制限しようとしています。残念ながら、このサイトはロールを使用していませんが、格納された値に基づいてユーザーのロールを把握するために SQL データベースにアクセスします。ユーザーにアクセス権を付与する必要があるかどうかを判断するために SQL 値を取得することは可能ですか。たとえば、次のようになります。

  <location path="Restrictedpage.aspx">
    <system.web>
      <authorization>
        <allow users="SQL Reference would go here, returning the usernames that fall under certain criteria, such as value admin = 1"/>
        <deny users="*"/>
      </authorization>
    </system.web>

私はこれが奇妙な質問であることを知っています.

ありがとう!

4

3 に答える 3

3

いいえ。web.config は、宣言型の構成用です。そうは言っても、データベースにロールがないからといって、アプリケーションでロールを使用できないわけではありません。たとえば、誰かがデータベースにいる場合、ログイン時にロールにIsAdmin = 1入れることができます。Administrators次に、web.config のセクションを簡単に使用して、ロール<authorization>のメンバーのみがその場所にアクセスできるようにすることができます。Administrators

web.config の代わりに、Page_Load()RestrictedPage.aspx を使用してデータベースにクエリを実行し、ユーザーが管理者かどうかを確認できます。そうでない場合は、ユーザーを別の場所にリダイレクトします。ただし、コードを再コンパイルでき、この問題をすべて経験する場合は、ロールベースのアプローチを使用することもできます。

于 2013-06-10T16:20:23.153 に答える
0

web.config ファイルが変更された場合、IIS は構成を自動的に再読み込みします。これが推奨されるアプローチであると言っているのではありません。しかし...拒否リストが更新された場合、アプリケーションにコードを記述してweb.configファイルを変更できます。アプリケーションが Web.config を変更するためのアクセス権を持っていることを確認してください。

于 2013-06-10T16:26:40.840 に答える
-1

また、現在のデータベース スキーマを変更せずに維持できるメンバーシップ プロバイダーの使用を検討することもできますhttp://msdn.microsoft.com/en-us/library/f1kyba5e(v=vs.100).aspx

メンバーシップ プロバイダーの作成に関するチュートリアル: http://www.asp.net/web-forms/videos/how-do-i/how-do-i-create-a-custom-membership-provider

于 2013-06-10T16:20:05.653 に答える