0

我正在使用 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;

    }

  }

请注意,我知道这将失败,WebSecurityInitializeSimpleMembership Attribute我想通过示例展示我想要实现的目标。这可能吗?

4

1 回答 1

1

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

或者你可以使用

var userId = Membership.GetUser(User.Identity.Name).ProviderUserKey;
于 2013-03-08T13:14:46.267 回答