2012-05-10 49 views
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没有一个用户ID。我试图将UserId用作我将创建的其他表的外键。我可以使用UserName,但我认为使用UserId可能会更好。

回答

7

试试,看看MembershipUser.ProvideUserKey属性适用于您

从上面的链接:

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

5
Membership.GetUser().ProviderUserKey 

的getUser()将获得当前用户,并ProviderUserKey将是编号,它会作为一个对象,你会想将它转换为它到底是什么,INT,GUID等