使用ASP.NET MVC从Helpers调用User.Identity.GetUserId()

时间:2016-01-04 10:22:24

标签: c# asp.net-mvc asp.net-mvc-helpers

我是ASP.NET MVC的新手,

我将HTTP POST方法从我的控制器移到了Helpers,我无法从User.Identity.GetUserId()库中调用System.Security.Principal.IIdentity

为什么我不能使用帮助程序中的这个库?感谢

1 个答案:

答案 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();
    }
}

如果你在帮助器方法中检索它,我个人会建议将这个值作为控制器中的参数传递,因为它使得它更依赖于它吗?

如果将辅助方法移动到服务层等,则需要从控制器获取此值并将其作为参数传递。