.NET 2.0 のカスタム ロール プロバイダー (RoleProvider から継承) では、IsUserInRole メソッドは常に true を返すようにハードコードされています。
public override bool IsUserInRole(string username, string roleName) { return true; }
このロール プロバイダーを使用するように構成された ASP.NET アプリケーションでは、次のコードは (予想どおり) true を返します。
Roles.IsUserInRole("any username", "any rolename"); // results in true
ただし、次のコードは false を返します。
Roles.IsUserInRole("any rolename"); // results in false
User.IsInRole("any rolename") も false を返すことに注意してください。
- これは予想される動作ですか?
- ロール名のみを受け取るオーバーロードが、オーバーライドされた IsUserInRole を呼び出すと仮定するのは間違っていますか?
更新:単一の文字列を取るバージョンで使用できるオーバーライドがないように見えることに注意してください。