与MVC SimpleMembership分配角色 [英] Assigning Roles with MVC SimpleMembership
问题描述
我在通过的NuGet MVC3尝试SimpleMembership,并下载示例一起玩。
问题是,我想不通我怎么会角色分配给特定用户。
I am trying out "SimpleMembership" in MVC3 via Nuget and have downloaded the sample to play with. The issue is that I cannot figure out how I would assign a role to a particular user.
在你可以使用类似标准的MVC成员:
In the standard MVC membership you can just use something like:
Roles.AddUserToRole(model.UserName, "StandardUser");
不过,SimpleMembership似乎只对暴露的角色的一种方法(除非我是在愚蠢的!)这是
However, SimpleMembership only seems to have one method for roles exposed (unless Im being stupid!) which is
public void RequireRoles(params string[] roles)
{
WebSecurity.RequireRoles(roles);
}
有必须是简单的方法,如下表被作为这个的NuGet包的一部分创建的:
There must be an easy way as the following table was created as part of this nuget package:
-TABLE: webpages_Roles
RoleId , RoleName
这是稍微有一些混乱,虽然在 App_Start / SimpleMembershipMvc3.cs
有以下内容:
This is slightly confusing though as in App_Start/SimpleMembershipMvc3.cs
there is the following:
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功能
SimpleRoleProvider function
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创建的表
Does this package use the built in Role provider? If so, how does it hook up with the tables created by SimpleMembership
- Simple Membership GIT
- Nuget package
- Nuget Package for sample
推荐答案
您需要使用的角色API 的角色进行互动。像下面这样的东西应该工作:
You need to use the Roles API to interact with the Roles. Something like the following should work:
if (!Roles.RoleExists("Administrator"))
Roles.CreateRole("Administrator");
if (!Roles.GetRolesForUser(model.UserName).Contains("Administrator"))
Roles.AddUsersToRole(new[] { model.UserName }, "Administrator");
这篇关于与MVC SimpleMembership分配角色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!