0

メンバーシッププロバイダには、web.configファイルを使用してページレベルで認証および認可を行い、デコレータを使用するメソッドを保護する仕組みがあります。固定構成を使用していないapt.netメンバーシッププロバイダ

私はhttp://msdn.microsoft.com/en-us/library/yh26yfzy(v=VS.90).aspx

私の質問は、.configファイルのファイルや管理ができるようにSQLデータベースでそれらを持っているが、コードでこれらを保存しないことが方法である。このasp.netを使用することにはかなり新しいですいくつかの動的な方法で複数の「役割」とセキュリティを許可することができましたか?私は何を意味するかの

例:

web.configファイル:

<?xml version="1.0"?> 
<!-- 
    Note: As an alternative to hand editing this file you can use the 
    web admin tool to configure settings for your application. Use 
    the Website->Asp.Net Configuration option in Visual Studio. 
    A full list of settings and comments can be found in 
    machine.config.comments usually located in 
    \Windows\Microsoft.Net\Framework\v2.x\Config 
--> 
<configuration> 
    <appSettings/> 
    <connectionStrings/> 
    <system.web> 
     <authorization> 
     <allow roles="Administrators" /> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 

内装の方法の例スニップ:特に

[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")] 
[PrincipalPermission(SecurityAction.Demand, Role = "Supervisors")] 
protected void UserGrid_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 

、Iは実施例ここに興味がありますデータベースパーティのデータモデルパターン/プラクティスを使用して、特定のユーザの認証だけでなく認証も容易にすることができ、構成またはコード。私が知るべきである/ここに気づいているものが紛れていますか?

答えて

0

一つの方法は、UsersGroupsに割り当てられ、GroupsRolesに割り当てられた中間テーブルGroupを作成するであろう。

multiple rolesの要件はmultiple groupsになります。

[PrincipalPermission(SecurityAction.Demand, Role = "SingleRole")] 
protected void UserGrid_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 

これを実装するには、カスタムRoleProviderを書き込む必要があります。

0

投稿した例は承認データです。両方とも、特定の役割のasp.netリソースへのアクセスレベルを定義します。だから、あなたが本当に求めているのは、SQLベースの方法でASP.NETで認可を設定する方法があるからです。ソースや設定を直接変更することなく、SQLからのロールにアクセスする役割を変更できます。

私はこれを直接行う方法はわかりませんが、SQLの独自のロール/グループ構造を組み込みロール構造にプラグインして、ASP.NETロールがリソースとアクセスレベルを定義できるようにすることができますSQLグループ/ロールは、Partyデータモデルを記述して従うときに動的に変更できます。

関連する問題