我将以下算法放入登录控制事件中。用户登录后会触发。抛出一个空点异常。
答案更新!!抛出一个新的异常,它告诉我演员表无效
MembershipUser CurrentUser = Membership.GetUser(Login1.UserName,true);
int i = (int)CurrentUser.ProviderUserKey;
我假设只有用户成功登录才会触发此事件,并且没有失败..我应该使用其他事件。请帮忙!!!
答案 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);