フォーム認証を使用してログインするときにユーザーに役割を割り当てる方法が説明されているこの記事をフォローしています。
public void Application_AuthenticateRequest( Object src , EventArgs e )
{
if (!(HttpContext.Current.User == null))
{
if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" )
{
System.Web.Security.FormsIdentity id;
id = (System.Web.Security.FormsIdentity)HttpContext.Current.User.Identity;
String[] myRoles = new String[2];
myRoles[0] = "Manager";
myRoles[1] = "Admin";
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
}
}
}
役割ロジックをイベントハンドラーに配置したので、基本的に役割プロバイダーは必要ありません。それにもかかわらず、これを実行するには、でロールプロバイダーを有効にする必要があるようweb.config
です。悲しいことに、私がちょうど置くならば:
<roleManager enabled="true"/>
AspNetSqlRoleProvider
ロールプロバイダーとして選択した場合のように、SQLサーバーへの接続の失敗に関連するランタイムエラーが発生します。
このように役割を機能させるにはどうすればよいですか?役割プロバイダーを使用しないことを選択するにはどうすればよいですか、またはダミーのプロバイダーを実装するにはどうすればよいですか(意味がある場合)?