12

Nugetを介してMVC3で「SimpleMembership」を試しています。サンプルをダウンロードして試してみました。問題は、特定のユーザーにどのように役割を割り当てるかがわからないことです。

標準のMVCメンバーシップでは、次のようなものを使用できます。

Roles.AddUserToRole(model.UserName, "StandardUser");

ただし、SimpleMembershipには、公開されたロールのメソッドが1つしかないようです(Imが愚かでない限り)。

public void RequireRoles(params string[] roles)
        {
            WebSecurity.RequireRoles(roles);
        }

次のテーブルがこのnugetパッケージの一部として作成されたため、簡単な方法が必要です。

-TABLE: webpages_Roles
     RoleId , RoleName

App_Start/SimpleMembershipMvc3.cs次のようになりますが、これは少し混乱します。

Roles.Enabled = true;
RoleProvider provider3 = Roles.Providers["AspNetSqlRoleProvider"];
        if (provider3 != null)
        {
            RoleProvider provider6 = provider3;
            SimpleRoleProvider provider4 = CreateDefaultSimpleRoleProvider("AspNetSqlRoleProvider", provider6);
            Roles.Providers.Remove("AspNetSqlRoleProvider");
            Roles.Providers.Add(provider4);
        }

SimpleRoleProvider関数

 private static SimpleRoleProvider CreateDefaultSimpleRoleProvider(string name, RoleProvider currentDefault)
            {
                RoleProvider previousProvider = currentDefault;
                SimpleRoleProvider provider = new SimpleRoleProvider(previousProvider);
                NameValueCollection config = new NameValueCollection();
                provider.Initialize(name, config);
                return provider;
            }

このパッケージは組み込みのロールプロバイダーを使用しますか?もしそうなら、SimpleMembershipによって作成されたテーブルとどのように接続しますか

4

2 に答える 2

2
WebSecurity.InitializeDatabaseFile("SecurityDemo.sdf", "Users", "UserID", "Username", true);

このウェブサイトをチェックしてください。それはいくつかの助けになるかもしれません。 http://blog.osbornm.com/archive/2010/07/21/using-simplemembership-with-asp.net-webpages.aspx

于 2012-08-02T17:46:54.950 に答える