2013-07-18 54 views
2

我试图用基于MVC 4应用程序的授权属性,如何将授权属性角色MVC4设置给用户?

[Authorize(Roles = "Administrator, Super-User")] 
public JsonResult Remove(int id) 
{ 
     . 
     . 
     . 
} 

我知道,只有角色的“管理员”和“超级用户”角色被授权执行方法Remove,但如何我可以将角色设置为应用程序的实际用户?

+0

? – SLaks

回答

0

可以使用

Roles.AddUsersToRole(new string[]{HttpContext.Current.User.Identity.Name}, "Admin");

角色类是在System.Web.Security命名空间中的当前用户添加到一个角色。

如果你想在Visual Studio中添加用户和角色 - 开放式解决方案

转到项目 - > ASP.NET配置 - >安全选项卡

1

答案是 - 不知何故,所以HttpContext.Current.User设置和IsInRole方法返回true。

最简单的方法是使用内置的认证/授权机制之一:表单身份验证或Windows身份验证。

前者要求请求携带服务器发出的有效表单cookie。后者要求可以在域控制器中验证请求主体。

然而,您可以自由实施自定义验证模块。

如果你刚开始学习这个,可能你想使用表单身份验证。只要让你的用户登录,发布cookie,cookie就会自动被后续的ajax请求携带(假设你的服务器代码是从javascript客户端ajax调用中调用的)。

0

您可以添加一个用户使用一个角色提供角色。

var rolesProvider = (SimpleRoleProvider)Roles.Provider; 

检查角色是否存在

if (!rolesProvider.RoleExists("SuperUser")) 
{ 
    rolesProvider.CreateRole("SuperUser"); 
} 

检查,如果用户是在角色不已,如果不是,您正在使用哪种认证系统的用户添加到角色

if (! rolesProvider.IsUserInRole("JohnSmith", "SuperUser")) 
{ 
    rolesProvider.AddUsersToRoles(new[] {"JohnSmith"}, new[] {"SuperUser"}); 
} 
相关问题