Membership.GetUser(User.Identity.Name);

时间:2011-05-29 08:08:06

标签: asp.net events membership-provider

我将以下算法放入登录控制事件中。用户登录后会触发。抛出一个空点异常。

答案更新!!抛出一个新的异常,它告诉我演员表无效

   MembershipUser CurrentUser = Membership.GetUser(Login1.UserName,true);
        int i = (int)CurrentUser.ProviderUserKey;

我假设只有用户成功登录才会触发此事件,并且没有失败..我应该使用其他事件。请帮忙!!!

3 个答案:

答案 0 :(得分:1)

您需要从当前的HTTP上下文中获取当前用户。我相信您传递给GetUser方法的静态实例不会填充用户凭据。

尝试一下:

MembershipUser CurrentUser = Membership.GetUser(this.Context.User.Identity.Name);

假设您的会员资格设置正常,您应该能够检索当前用户,如果没有,您需要处理未找到用户的情况 - 例如,要求用户登录。

答案 1 :(得分:1)

 protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        MembershipUser user = Membership.GetUser(Login1.UserName, true);

然后使用

user.ProviderUserKey

答案 2 :(得分:1)

您键入的代码应该可以使用,但您也可以使用无参数

Membership.GetUser();

这可以在用户登录时帮助您。但是当没有用户登录时User.Identity.Name不正确。您可以查看User.Identity.IsAuthenticated

登录页面中的

使用此:

MembershipUser user = Membership.GetUser(Login1.UserName, true);