1

ユーザーがログインしていない場合に HttpContext.Current.User.IsInRole("Customer") が false を返す理由は、ユーザーが匿名と見なされるためだと思います。

ありがとう

4

3 に答える 3

5

はい。それで合っています。匿名ユーザーはロールに属することはできません。

User匿名ユーザーのオブジェクトはaGenericPrincipalであり、それが実装されている間IPrincipalIsUserInRoleメソッドはによって作成されたときに提供された役割がないため、常にfalseを返すことに注意してくださいFormsAuthenticationModule

Userまた、認証されたユーザーのオブジェクトはRolePrincipal、でクエリを実行RoleManagerする、であることに注意してIsUserInRoleください。

于 2010-05-18T11:08:10.930 に答える
0

ユーザーがアプリケーションにログインしない限り、アプリケーションは匿名ユーザーとして動作し、このユーザーはアプリケーションで認識されません。

于 2010-05-18T11:14:07.770 に答える
0

これはデフォルトの動作であり、匿名ユーザーには役割がありません。

ただし、false が返された場合、ユーザーが認証されていないことを確認できません ( User.Identity.IsAuthenticatedプロパティを使用することをお勧めします)。

于 2010-05-18T11:22:28.003 に答える