在新的MVC4应用程序中获取UserId(int)

mis*_*hap 6 membership asp.net asp.net-mvc-4

新的MVC4应用程序创建了UserProfile表:

UserId(int)| 用户名(NVARCHAR)

在控制器中:

  string currentUser = User.Identity.Name;  // returns UserName

  var mu1 = Membership.GetUser(); // returns null

  var mu2 = Membership.GetUser(currentUser); // returns null as well
Run Code Online (Sandbox Code Playgroud)

我读了很多帖子,他们都谈到了获取Guid,我甚至没有在用户和会员表中.

有没有办法获取当前登录用户的UserId(int)?

Gar*_*lie 12

请确保您添加[InitializeSimpleMembership]到您的控制器的顶部,它通过初始化文件的简单成员InitializeSimpleMembershipAttribute.csFilters目录中.

然后,您可以通过几种不同的方式访问用户ID:

int mu1 = (int)WebSecurity.CurrentUserId;
int mu2 = (int)Membership.GetUser().ProviderUserKey;
Run Code Online (Sandbox Code Playgroud)


Rus*_*Cam 0

mu1并将包含用户是否已成功通过身份验证mu2的实例。有一个type 属性,其中包含用户的标识符。MembershipUserMembershipUserProviderUserKeyobject

Membership.GetUser()需要为应用程序连接一个 MembershipProvider 并对用户进行身份验证;既然您看到null被退回,这表明上述条件之一未得到满足。