当我尝试
时user = System.Web.UI.Page.CurrentUser
或
user = System.Web.UI.Page.User.Identity
我收到一条错误消息,指出没有为System.Web.UI.Page
定义该方法我试图在Controller中访问它,这有关系吗?
我检查过我没有另一个名为Page的类,为什么会说这个方法没有定义?
答案 0 :(得分:7)
有很多方法可以做到(基本上,它们都是一样的)
User.Identity // in the controller
HttpContext.User.Identity // in the controller
System.Web.HttpContext.Current.User.Identity // anywhere
当有Page.User
HTTP处理程序正在处理当前请求时, Page
属性有效。与在MVC控制器中一样,请求尚未传递给Page
类,但它不起作用。
在控制器中。
答案 1 :(得分:0)
编辑:看起来有人打败了我。
在这里找到答案:ASP.NET Controller Base Class User.Identity.Name
HttpContext.User
似乎工作得很好......任何人都认为有什么问题吗?
答案 2 :(得分:0)
CurrentUser似乎不是System.Web.UI.Page上的属性。 (http://msdn.microsoft.com/en-us/library/system.web.ui.page.aspx)
您的控制器应该公开名为User的属性,这有用吗?例如:
var user = User;