我试图用基于MVC 4应用程序的授权属性,如何将授权属性角色MVC4设置给用户?
[Authorize(Roles = "Administrator, Super-User")]
public JsonResult Remove(int id)
{
.
.
.
}
我知道,只有角色的“管理员”和“超级用户”角色被授权执行方法Remove
,但如何我可以将角色设置为应用程序的实际用户?
我试图用基于MVC 4应用程序的授权属性,如何将授权属性角色MVC4设置给用户?
[Authorize(Roles = "Administrator, Super-User")]
public JsonResult Remove(int id)
{
.
.
.
}
我知道,只有角色的“管理员”和“超级用户”角色被授权执行方法Remove
,但如何我可以将角色设置为应用程序的实际用户?
可以使用
Roles.AddUsersToRole(new string[]{HttpContext.Current.User.Identity.Name}, "Admin");
角色类是在System.Web.Security命名空间中的当前用户添加到一个角色。
如果你想在Visual Studio中添加用户和角色 - 开放式解决方案转到项目 - > ASP.NET配置 - >安全选项卡
答案是 - 不知何故,所以HttpContext.Current.User
设置和IsInRole
方法返回true。
最简单的方法是使用内置的认证/授权机制之一:表单身份验证或Windows身份验证。
前者要求请求携带服务器发出的有效表单cookie。后者要求可以在域控制器中验证请求主体。
然而,您可以自由实施自定义验证模块。
如果你刚开始学习这个,可能你想使用表单身份验证。只要让你的用户登录,发布cookie,cookie就会自动被后续的ajax请求携带(假设你的服务器代码是从javascript客户端ajax调用中调用的)。
您可以添加一个用户使用一个角色提供角色。
var rolesProvider = (SimpleRoleProvider)Roles.Provider;
检查角色是否存在
if (!rolesProvider.RoleExists("SuperUser"))
{
rolesProvider.CreateRole("SuperUser");
}
检查,如果用户是在角色不已,如果不是,您正在使用哪种认证系统的用户添加到角色
if (! rolesProvider.IsUserInRole("JohnSmith", "SuperUser"))
{
rolesProvider.AddUsersToRoles(new[] {"JohnSmith"}, new[] {"SuperUser"});
}
? – SLaks