是否可以在FormsAuth.SignIn之后获取ASP.NET成员资格用户名?

时间:2009-11-15 04:39:11

标签: asp.net-membership forms-authentication

我有一些代码正在访问Membership.GetUser()以获取当前登录用户。

这一点正常,直到我在使用FormsAuth.SignIn(userName, false);

登录后立即尝试访问它

但是我注意到新的登录用户都没有更新Membership.GetUser()User.Identity.Name,直到新的请求(我假设它直接从请求cookie中读取)。

这有点搞砸了我访问Membership.GetUser()的逻辑,因为它引入了一个特例。

问题:有办法在登录后立即读取当前登录用户的ASP.NET成员资格。或者我是否必须引入自己的抽象层才能让我“设置”用户登录? (这是在AJAX请求中 - 所以我宁愿不做重定向。)

3 个答案:

答案 0 :(得分:1)

这可能对您没有帮助,因为它仍然是一种特殊情况,但您可以使用Membership.GetUser(用户名)。这将返回新创建的用户的MembershipUser对象,即使它们在技术上不会在下一个请求之后登录并且设置了表单auth cookie。

答案 1 :(得分:0)

将cookie从响应中拉出来并使用FormsAuthentication来提取票证吗?

答案 2 :(得分:0)

void OnLoggedIn(object sender, EventArgs e)
{
    SiteSpecificUserLoggingMethod(Login1.UserName);
}

使用Login1.UserName,在登录控制中自动允许您在下一次请求之前访问用户名。