c#User.IsInRole命名空间
注意,我正在使用c#MVC 3,我试图在一个类中使用它,而不是一个控制器。
我的程序顶部有以下内容
using System.Web.Security;
我尝试执行以下操作但收到消息:
“User”这个名称在当前上下文中不存在。
这是我的部分代码:
using System.Web.Security; .... .... if (User.IsInRole("Admin")) { }
我认为必须对命名空间做一些事情但是查看文档,我应该需要的是System.Web.Security。
首先尝试:在执行视图时,检查控制器中的以下内容HttpContext.Current.User.IsInRole("Admin")
– 此行检查您的值。
如果你加载了当前的HttpContext,它应该返回一个bool
值。
解决方案#2:查看默认的mvc3项目:
Context.User.IsInRole("Admin")
而不是Page.User.IsInRole("Admin")
。
另外 :您可以查看此post,了解如何设置角色的使用 – User.IsInRole(“”)而不使用成员资格 。
查看ASP.NET MVC Membership
类的以下用法:
- ASP.Net MVC 3 Razor中的成员资格和授权
- SimpleMembership,成员资格提供程序,通用提供程序以及新的ASP.NET 4.5 Web窗体和ASP.NET MVC 4模板
- Asp.net会员 – 如何以编程方式确定用户是否在角色中
- ASP.NET MVC成员资格角色
using System.Web.Mvc;
添加using System.Web.Mvc;
应该这样做
因此,根据您的评论,我将假设您正在一个不是Controller的类中工作,但是在您的MVC项目中。 所以你应该能够做你想做的事情
if(HttpContext.Current.User.IsInRole("Admin")) { //... }
使用System.Web.HttpContext.Current.User.IsInRole("yourRole")
希望它会有所帮助:)