我正在使用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
,但我希望通过示例展示我想要实现的目标。这可能吗?
答案 0 :(得分:1)
您可以将[InitializeSimpleMembership]
添加到控制器的顶部而不是每个操作,并可以使用WebSecurity.GetUserId(User.Identity.Name)
或者您可以使用
var userId = Membership.GetUser(User.Identity.Name).ProviderUserKey;