如何让User.Identity在控制器外工作

时间:2011-05-05 13:06:25

标签: asp.net-mvc-3

我与我的一些自定义ASP.NET MVC助手有单独的项目

在我的一位助手中,我需要检查用户身份。

我如何让User.Identity在那里工作?

默认情况下,它位于名为System.Security.Principal

的界面中的interface IPrincipal

2 个答案:

答案 0 :(得分:47)

您可以通过以下方式轻松访问它:

HttpContext.Current.User.Identity

所以HttpContext.Current是诀窍。

答案 1 :(得分:12)

HtmlHelper具有当前的ViewContext,通过HttpContext,您将获得当前用户的User对象。在您的扩展方法中,您可以使用此

public static bool MyHelper(HtmlHelper helper)
{
    var userIdentity = helper.ViewContext.HttpContext.User.Identity;
    // more code
}