我是ASP.NET MVC的新手,
我将HTTP POST方法从我的控制器移到了Helpers,我无法从User.Identity.GetUserId()
库中调用System.Security.Principal.IIdentity
。
为什么我不能使用帮助程序中的这个库?感谢
答案 0 :(得分:8)
使用User
从控制器中获取的User.Identity.GetUserId()
对象的类型为HttpContext.User
。
您可以使用位于HttpContext
内的HttpContext.Current
获取当前System.Web
。
你也需要使用Extension方法的using语句。
using Microsoft.AspNet.Identity;
using System.Web;
public class MyClass()
{
public void MyMethod()
{
// Get the current context
var httpContext = HttpContext.Current;
// Get the user id
var userId = httpContext.User.Identity.GetUserId();
}
}
如果你在帮助器方法中检索它,我个人会建议将这个值作为控制器中的参数传递,因为它使得它更依赖于它吗?
如果将辅助方法移动到服务层等,则需要从控制器获取此值并将其作为参数传递。