只是好奇什么是最好的方法?
习惯使用
if (User.IsInRole("Administrator"))
使用我的旧程序,
为 MVC4-VS2012 项目使用新的剑道模板(对我来说是新的)它创建了没有简单成员资格的一切,所以我在一些 youtube 视频和文档的帮助下编写了自己的登录系统。
它非常灵活且有效,只是好奇我如何检查用户是否在 Roll Via A 视图中(类似if (User.IsInRole("Administrator")))。或者最好的方法(可能在控制器中)
只是好奇什么是最好的方法?
习惯使用
if (User.IsInRole("Administrator"))
使用我的旧程序,
为 MVC4-VS2012 项目使用新的剑道模板(对我来说是新的)它创建了没有简单成员资格的一切,所以我在一些 youtube 视频和文档的帮助下编写了自己的登录系统。
它非常灵活且有效,只是好奇我如何检查用户是否在 Roll Via A 视图中(类似if (User.IsInRole("Administrator")))。或者最好的方法(可能在控制器中)
您可以继续使用User.IsInRole(""),您只需设置HttpContext.User具有角色列表的正确主体。
您可以创建自己的授权属性来处理此问题:
var websiteRoles = userRepo.GetRoles(HttpContext.User.Identity.Name);
var identity = filterContext.HttpContext.User.Identity as FormsIdentity;
filterContext.HttpContext.User = new System.Security.Principal.GenericPrincipal(identity, websiteRoles.ToArray());
跟进:
您的 GetRoles() 方法可以以任何您喜欢的方式实现,您只需要拥有用户所属角色的列表。您将使用此列表创建 Principal 对象以将 User 设置为。
使用这种方法将允许您使用 User.IsInRole()