3

私はよく知っています:

WebSecurity.IsCurrentUserInRole("Admin")

しかし、これはもう機能していないようです。SimpleMembershipを使用しているときにユーザーがロールに属しているかどうかをコントローラーでチェックインする別の方法はありますか?

4

2 に答える 2

8

使用できます

if (User.IsInRole("Admin"))
{

}

そしてwebConfig

<system.web>
    <roleManager enabled="true" />
    ....

コメント後

次のようなものを使用できます。

foreach (string rolesForUser in Roles.GetRolesForUser(User.Identity.Name))
{
    if (User.IsInRole(rolesForUser))
    {

    }
}

これを行うにはエレガントな方法があると思います...

于 2013-01-23T08:51:01.890 に答える
2

RoleProviderも設定する必要があります

SimpleMembershipを使用しているので、おそらくSimpleRoleProvider同様に使用する必要があります。Roles.CreateRoleRoleManager Webインターフェースを呼び出すか、RoleManager Webインターフェースを使用して、プログラムで役割を作成できます。

<roleManager enabled="true" defaultProvider="simple">
  <providers>
    <clear/>
    <add name="simple" type="WebMatrix.WebData.SimpleRoleProvider, 
                             WebMatrix.WebData"/>
  </providers>      
</roleManager>
于 2013-01-23T08:50:56.787 に答える