请注意,我使用C#MVC 3,我想一类,而不是一个控制器中使用。
在我的程序之上,我有以下
using System.Web.Security;
我试着做以下,但得到的消息:
该名“用户”并不在当前的背景下存在。
这里是我的部分代码:
using System.Web.Security;
....
....
if (User.IsInRole("Admin"))
{
}
我想这是必须做一些事情的命名空间,但在看文档,所有我需要的是System.Web.Security。
先尝试:在执行视图中,检查在控制器中执行以下HttpContext.Current.User.IsInRole("Admin")
-这条线检查你的价值。
它应该返回一个bool
,如果您有当前HttpContext加载值。
解决方案2:查看默认MVC3项目:
Context.User.IsInRole("Admin")
而不是Page.User.IsInRole("Admin")
另外 :你可以检查这个帖子有关如何设置角色的使用- User.IsInRole(”“),而无需使用会员 。
寻找具有以下使用ASP.NET MVC Membership
类:
- 会员资格和授权在ASP.Net MVC 3剃须刀
- SimpleMembership,会员供应商,环球供应商和新的ASP.NET 4.5 Web Forms和ASP.NET MVC 4个模板
- Asp.net会员-如何确定程序是用户在角色
- ASP.NET MVC成员资格角色
添加using System.Web.Mvc;
应该这样做
因此,根据您的意见,我会假设你是在一个类,它是不是一个控制器的工作,但你的MVC项目中。 所以,你应该能够做你正在尝试像这样什么
if(HttpContext.Current.User.IsInRole("Admin"))
{
//...
}
使用System.Web.HttpContext.Current.User.IsInRole("yourRole")
希望这将有助于:)