2012-01-03 1 views
1

最近、私はhow to use ajax calls to authenticate user in asp.net mvcについて質問しました。私は答えを得ました。私site.masterビューでGenericPrincipalインスタンスを使用してロールを設定する

HttpContext.User = new System.Security.Principal. 
        GenericPrincipal(new System.Security.Principal.GenericIdentity(login.LoginName), 
        userRole); 

を、:そして

しかし「の役割」を含むように従うように、私は自分のコードを変更し「GenericPrincipal」クラス

の「役割」プロパティを使用することを決めています私は のユーザがどんな種類の役割に属しているかチェックし、適切なメニューを表示しますが、 'HttpContext.Current.User.Identity'の値をデバッグ中に表示します。 m_roles = string [0]と 'IsInRole( " Admin ") 'はfalseを返します。

どうすれば修正できますか?ここに示されているよう

 
    System.Threading.Thread.CurrentPrincipal = principal; 

+0

上記USERROLEには何が? –

+0

string [] userRole = new string [] {"Admin"} –

+0

私のwebconfigの@persianDevには、SQLからロールを取得したくないので、があります。あなたがしたように...しかし、正確に私のコントローラで私はIsInRoleをチェックしようとすると( "..."私はいつも偽になる...任意の手がかり? – VAAA

答えて

0

は、現在のスレッドの原則を設定してみてください http://social.msdn.microsoft.com/forums/en-US/Vsexpressvcs/thread/5f9735a9-096b-47af-963d-e95130cad6b4

+0

それはasp.net mvcに適用可能ですか? –

+0

ASPに適用されます。 NETとは、両方のWebフォームとMVCが使用するものです。 –

+0

@Adam、私はSystem.Threadingを設定しました....そして、コントローラでは常にfalseを返します...任意の手がかり? – VAAA

関連する問題