获取当前用户ID

时间:2012-05-10 00:32:35

标签: c# asp.net-mvc-3 membershipuser

我正在尝试将此帖子中http://msdn.microsoft.com/en-us/library/aa478949.aspx中提到的当前登录用户的UserId作为aspnet_Membership表的一部分。

这是我在寻找的地方:

    MembershipUser user = null;

    if (User != null && User.Identity != null && !string.IsNullOrEmpty(User.Identity.Name))
    {
        user = Membership.GetUser(User.Identity.Name);
    }

    if (user != null)
    {
        //int id = user.UserId;
    }

MembershipUser没有UserId。我试图将UserId用作我将创建的其他表的外键。我可以使用UserName,但我认为使用UserId可能更好。

2 个答案:

答案 0 :(得分:7)

尝试查看MembershipUser.ProvideUserKey属性是否适合您

从上面链接:

  

ProviderUserKey属性公开来自作为对象输入的成员资格数据源的标识符。标识符的类型取决于MembershipProvider或MembershipUser。对于SqlMembershipProvider,ProviderUserKey可以作为Guid进行转换,因为SqlMembershipProvider将用户标识符存储为UniqueIdentifier。

答案 1 :(得分:5)

Membership.GetUser().ProviderUserKey

GetUser()将获得当前用户,而ProviderUserKey将成为Id,它将作为一个对象,您将希望将其转换为实际内容,int,guid等。