2011-11-10 20 views
0

これは疑問を述べる奇妙な方法ですが、これが私が達成しようとしているものです。asp.netはセッションRoles.AddUsertoRoleのロールを格納します(私が探しているものではありません)

これは私がMySQLのDBへ

接続をやっているものです(完了)
認証(完了)
私は、MySQLで指定したすべてのロール(完了)
ストア何とかそれらの役割を選択私は自分の役割のメンバーシップに基づいてコントロールとリンクを表示することができます。

は、私はちょうどこれは私がコード

MySqlDataReader dr2 = cmd2.ExecuteReader(); 
       while (dr2.Read()) 
       { 
        string roleName = dr2["role"].ToString(); 
        //error here -> Roles.AddUserToRole(userID, roleName); 
       } 

アクセスユーザのために拒否されたとして、これを使用してい

system.web 
    membership defaultProvider="MySQLMembershipProvider"/
roleManager enabled="true" defaultProvider="MySQLRoleProvider"/
/system.web 

web.configファイルでのMySQLの一部を処理するために考え出しました '@ 'localhost' の(パスワードを使用:NO)

Roles.AddUserToRoleは本当に私のニーズを満たすために探していますか?私はsessioにユーザーの役割を格納する必要があると思いますか? I

答えて

0

Roles.AddUserToRoleは本当に私のニーズを満たすために探しているものですか?私はsessioにユーザーの役割を格納する必要があると思いますか?

NO!ロールにユーザーを追加すると、プロバイダーはユーザーをロールにリンクします。あなたが既にリンクしているので、これは価値のない方向です。

ストアそれらの役割は、何とか私は

は、なぜあなたはこれを実行する必要があります彼らの役割のメンバシップに基づいてコントロールとリンクを表示することができますか?ページレベルでは、トリミングを使用してASP.NETセキュリティを設定できるため、適切なロールにない場合にユーザーのビューからページを自動的に除外できます。セクション/コントロール/などまでは、ユーザーがロール内にいるかどうかを確認し、ロールを表示するかどうかを判断できます。セクションを使用する場合は、プログラムではなく宣言的に多くのことができます。

メンバーシッププロバイダがサポートしているのは1つの警告です。 「out of the box」プロバイダ(AccessおよびSQL Server)は、ページのセクションの除外に関するセキュリティトリミングと宣言構文をサポートしています。MySQLプロバイダがすべてのメソッドを実装している場合は、それを使用しても問題ありません。カスタムプロバイダを作成する場合は、機能させるために実装する必要がある部分があります。

ショート・ストーリーは、(あなたの人物を認証する)membershipUserを取得すると、その人物がロールに入っているかどうかにアクセスできるようになります。これは、.NETのメンバーシッププロバイダの標準実装の一部です。 MySQL用に使用しているプロバイダが同じ方法をすべてカバーしている場合は、素早くGoogle検索を行い、役割に基づいてビットを表示/非表示する方法を示す多数のサイトを見つけることができます。

+0

私は混乱している部分があると思います。なぜなら、ユーザーとロールを持つテーブルがあり、そのロールが選択されていると、それらのロールがテーブルにあるからです。どうすればasp.netの使用を確認できますかそれらのロール –

+0

も、私のユーザーのCNAは1-20のロールを持っています –

+0

私はasp.netにどのようにユーザーxがInfoAdminロールの一部であると言いますか? –

関連する問題