2

我正在尝试获取当前登录用户的 UserId,如这篇文章http://msdn.microsoft.com/en-us/library/aa478949.aspx中所述,作为 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 可能会更好。

4

2 回答 2

7

试试看MembershipUser.ProvideUserKey属性是否适合你

从上面的链接:

ProviderUserKey 属性从类型为对象的成员数据源公开标识符。标识符的类型取决于 MembershipProvider 或 MembershipUser。在 SqlMembershipProvider 的情况下,ProviderUserKey 可以转换为 Guid,因为 SqlMembershipProvider 将用户标识符存储为 UniqueIdentifier。

于 2012-05-10T00:38:33.117 回答
5
Membership.GetUser().ProviderUserKey

GetUser() 将获取当前用户,ProviderUserKey 将是 Id,它将作为一个对象出现,并且您需要将其转换为它的真实身份,int、guid 等。

于 2012-05-10T00:37:05.083 回答