gpt4 book ai didi

c# - 使用 MVC SimpleMembership 分配角色

转载 作者:可可西里 更新时间:2023-11-01 08:22:55 27 4
gpt4 key购买 nike

我正在通过 Nuget 在 MVC3 中试用“SimpleMembership”,并且已经下载了要玩的示例。问题是我无法弄清楚如何将角色分配给特定用户。

在标准 MVC 成员资格中,您可以使用类似的东西:

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

但是,SimpleMembership 似乎只有一种公开角色的方法(除非我很笨!),即

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 创建的表联系起来

最佳答案

您需要使用 Roles API与角色互动。像下面这样的东西应该可以工作:

if (!Roles.RoleExists("Administrator"))
Roles.CreateRole("Administrator");

if (!Roles.GetRolesForUser(model.UserName).Contains("Administrator"))
Roles.AddUsersToRole(new[] { model.UserName }, "Administrator");

关于c# - 使用 MVC SimpleMembership 分配角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com