如何获取当前登录用户的ID?

时间:2011-04-18 17:48:44

标签: c# asp.net .net-4.0 asp.net-membership

我正在开发一个从ASP.NET Web应用程序模板构建的示例项目(Web表单,而不是MVC)。用户登录后,我想获取用户的ID并将其存储在会话变量中,以便我可以在页面之间传递它。如何从ASP.NET成员资格提供程序获取用户的ID?根据用户的ID,我指的是成员资格数据库中的GUID。有没有方法来获取用户的ID?

我正在使用默认数据库架构并将其部署到我的服务器。

谢谢!

3 个答案:

答案 0 :(得分:9)

试试这个:

MembershipUser membershipUser = Membership.GetUser();
string UserID = membershipUser.ProviderUserKey.ToString();

答案 1 :(得分:5)

您不需要传递用户ID。目前经过身份验证的用户存储在HttpContext.Current.User

答案 2 :(得分:1)

您可以在类中定义静态方法并使用它:

public static Guid getCurrentUserGUID(){
    if (HttpContext.Current.User.Identity.IsAuthenticated)
    {
        MembershipUser myObject;
        myObject = Membership.GetUser(HttpContext.Current.User.Identity.Name);
        return (Guid)myObject.ProviderUserKey;
    }
    return Guid.Empty;       
}