我有一些代码正在访问Membership.GetUser()
以获取当前登录用户。
这一点正常,直到我在使用FormsAuth.SignIn(userName, false);
但是我注意到新的登录用户都没有更新Membership.GetUser()
和User.Identity.Name
,直到新的请求(我假设它直接从请求cookie中读取)。
这有点搞砸了我访问Membership.GetUser()
的逻辑,因为它引入了一个特例。
问题:有办法在登录后立即读取当前登录用户的ASP.NET成员资格。或者我是否必须引入自己的抽象层才能让我“设置”用户登录? (这是在AJAX请求中 - 所以我宁愿不做重定向。)
答案 0 :(得分:1)
这可能对您没有帮助,因为它仍然是一种特殊情况,但您可以使用Membership.GetUser(用户名)。这将返回新创建的用户的MembershipUser对象,即使它们在技术上不会在下一个请求之后登录并且设置了表单auth cookie。
答案 1 :(得分:0)
将cookie从响应中拉出来并使用FormsAuthentication来提取票证吗?
答案 2 :(得分:0)
void OnLoggedIn(object sender, EventArgs e)
{
SiteSpecificUserLoggingMethod(Login1.UserName);
}
使用Login1.UserName
,在登录控制中自动允许您在下一次请求之前访问用户名。