どうしていただくために、複数の値をカスタムRoleProvider GetUserRoles方法のMVCたします。
-
19-09-2019 - |
質問
い接着剤は私のカスタムpermissioningシステムの新しいASP.NET MVCアプリです。もちろん、相当の仕事でも書いよびユーザーインターフェイスAuthorizeAttributeのアプリです。私も自分のカスタムMembershipProviderとRoleProviderになります。すべてのこの作品は美しくまで私の確認が必要となるための役割のユーザーである。かったこる事ができて本当に良かったようにこのマイコントローラーを使用したデフォルトMVCテンプレートにVS2010レトロレディーコードとして試作:
[CustomAuth(Roles='X')]
public ActionResult DoSomething()
私のカスタムシステムはwhackyものです。ない電話へのSQL dbです。シンプルなwebserviceを提供する3つの方法CheckPassword,GetPermissions,WebLogin.WebLogin単純にラップもCheckPassword、GetPermissionsへ電話します。使用時WebLogin内ValidateUser動作しなかったかというTestPassword内MembershipProvider.ValidateUser(ユーザー名、パスワードがこの呼び出した結果だとのUserIDこに失敗していただきたいと思いますか、NULLになります。
問題は、呼び出も実施RoleProvider.に定義された抽象クラスGetRolesForUser単一のパラメータのユーザ名です。私GetPermissions()メソッドのニーズ以上の単一のユーザー名です。定義されているように:
GetPermissions(privateKey,userName)
ここから以下のRoleProvider方法がなくなるわけではありません。できないパスprivateKeyの方法は、サポートされるセット。
public override string[] GetRolesForUser(string username)
ができなくなるよびユーザーインターフェイスと呼ばれる手法から自身のカスタムRoleProvider?
解決
できるキャストのプロバイダとしてカスタムタイプ、ご利用いただけませへのアクセス方法あなたの機能は外部のではありますが、この密カップルでのご応募をお役割プロバイダードすることで微細になるお客様の目的.
RoleProvider rp = Roles.Provider;
(rp as MyRoleProvider).GetPermissions(privateKey,userName);
他のヒント
と思うのです:
(RoleProvider as MyRoleProvider).GetPermissions(privateKey,userName);