我需要在登錄成功後直接獲取UserId Guid。下面的代碼不起作用:成功登錄後User.Identity.IsAuthenticated爲false
if (Membership.ValidateUser(txtUsername.Value, txtPassword.Value))
{
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
// doesn't run
Guid puk = (Guid)Membership.GetUser().ProviderUserKey;
}
}
下面的代碼不工作:
if (Membership.ValidateUser(txtUsername.Value, txtPassword.Value))
{
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
MembershipUser user = Membership.GetUser(txtUsername.Value);
if (user != null)
{
Guid puk = (Guid)user.ProviderUserKey;
}
}
爲什麼會出現這種情況?除了SetAuthCookie
還有什麼可做的嗎?
有什麼辦法來訪問相同的請求用戶身份? –
@AhmadAhmadi您可以手動將它設置爲將CustomPrincipal對象分配給HttpContext的User屬性。 –
@OleksiiAza你能否更新你的答案來展示如何做到這一點? – Jake