質問は以下のとおりです。回答に必要なものを確認するために最後までお読みください...
私は持っている
- VS 2013
- Razor ビューを使用した MVC 5
- Dapper DAL カスタム UserManager および UserStore/User : IUser< int >
CustomUser : IUser< int > および CustomRole : IRole< int > に基づいて、独自の UserManager、RoleManager、UserStore、RoleStore を構築します。
パスワードの変更、忘れたパスワードの回復、ログイン、ログアウト...すべてうまくいきます。
ただし、かみそりビューでは、使用しようとすると:
User.IsInRole("Administrators");
他のモジュールから SQL 例外が発生します (これはおそらく iPrincipal Identity クラスで発生しますか???)。
System.Data.SqlClient.SqlException occurred
_HResult=-2146232060
_message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Source=.Net SqlClient Data Provider
ErrorCode=-2146232060
_doNotReconnect=false
Class=20
LineNumber=0
Number=-1
Server=""
State=0
StackTrace:
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
InnerException: <null>
しかし、私は呼び出すことができます
var user = AsyncHelpers.RunSync<CloudUser>(() => UserManager.FindByNameAsync(User.Identity.Name));
ViewBag.IsInAdminRole = AsyncHelpers.RunSync<bool>(() => UserManager.IsInRoleAsync(user.Id, "Administrators"));
私のコントローラーサーバーコードでは....
質問:
User.IsInRole と UserManager/UserStore および/または RoleManager との関係は何ですか?
Razor ビューで User.IsInRole("Administrators") を取得して、カスタム ID 認証実装を使用する必要があることを「理解」させるにはどうすればよいですか?