全局获取当前用户ID功能

时间:2013-03-08 11:21:50

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

我正在使用MVC4框架,在整个代码的很多实例中,我想获得当前的用户ID。

我理解这样做我可以使用:

  [InitializeSimpleMembership]
  public ActionResult SaveTask(FormCollection form)
  {
      var userID = WebSecurity.CurrentUserID;
  }

这是正常的,但我发现自己必须将[InitializeSimpleMembership]放在ActionResult上。理想情况下,我想要一个静态函数,我可以调用:

var userID = Utilities.CurrentUserID;

位于名为Utilities的类中:

   public static Int32 CurrentUserID{

    get
    {
        return WebSecurity.CurrentUserID;

    }

  }

注意我知道这会失败,因为WebSecurity需要InitializeSimpleMembership Attribute,但我希望通过示例展示我想要实现的目标。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以将[InitializeSimpleMembership]添加到控制器的顶部而不是每个操作,并可以使用WebSecurity.GetUserId(User.Identity.Name)

或者您可以使用

var userId = Membership.GetUser(User.Identity.Name).ProviderUserKey;