注意,我使用的是c#MVC 3,我试图在类中使用它,而不是控制器。
我的程序顶部有以下内容
using System.Web.Security;
我尝试执行以下操作但收到消息:
当前上下文中不存在“用户”名称。
这是我的部分代码:
using System.Web.Security;
....
....
if (User.IsInRole("Admin"))
{
}
我认为必须对命名空间做一些事情,但是看一下文档,我需要的就是System.Web.Security。
答案 0 :(得分:8)
先尝试,检查控制器HttpContext.Current.User.IsInRole("Admin")
中的以下内容 - 此行检查您的值。
如果您加载了当前的HttpContext,它应返回bool
值。
解决方案#2:查看默认的mvc3项目:
Context.User.IsInRole("Admin")
而不是Page.User.IsInRole("Admin")
。
此外:您可以查看此帖子,了解如何设置角色的使用情况 - User.IsInRole(" ") without using Membership。
使用 ASP.NET MVC Membership
类查找以下用法:
答案 1 :(得分:2)
添加using System.Web.Mvc;
应该这样做
因此,基于您的评论,我将假设您正在一个不是Controller的类中工作,但是在您的MVC项目中。所以你应该能够做你想做的事情
if(HttpContext.Current.User.IsInRole("Admin"))
{
//...
}
答案 2 :(得分:0)
使用System.Web.HttpContext.Current.User.IsInRole("yourRole")
希望它会有所帮助:)