与MVC SimpleMembership分配角色 [英] Assigning Roles with MVC SimpleMembership

查看:171
本文介绍了与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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆