ユーザーがログインしていない場合に HttpContext.Current.User.IsInRole("Customer") が false を返す理由は、ユーザーが匿名と見なされるためだと思います。
ありがとう
ユーザーがログインしていない場合に HttpContext.Current.User.IsInRole("Customer") が false を返す理由は、ユーザーが匿名と見なされるためだと思います。
ありがとう
はい。それで合っています。匿名ユーザーはロールに属することはできません。
User
匿名ユーザーのオブジェクトはaGenericPrincipal
であり、それが実装されている間IPrincipal
、IsUserInRole
メソッドはによって作成されたときに提供された役割がないため、常にfalseを返すことに注意してくださいFormsAuthenticationModule
。
User
また、認証されたユーザーのオブジェクトはRolePrincipal
、でクエリを実行RoleManager
する、であることに注意してIsUserInRole
ください。
ユーザーがアプリケーションにログインしない限り、アプリケーションは匿名ユーザーとして動作し、このユーザーはアプリケーションで認識されません。
これはデフォルトの動作であり、匿名ユーザーには役割がありません。
ただし、false が返された場合、ユーザーが認証されていないことを確認できません ( User.Identity.IsAuthenticatedプロパティを使用することをお勧めします)。