Używam kontrolki logowania ASP.NET 4.0 ze zdarzeniem LoggedIn

protected void Login_LoggedIn(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated) // return false (why?)
    {
        string name = HttpContext.Current.User.Identity.Name;
    }
    Response.Redirect("Default.aspx");
}

Zdarzenie jest uruchamiane i przechwytuję je debuggerem. Mam problem z tym, że User.Identity.IsAuthenticated zwraca false z jakiegoś powodu

Po zakończeniu funkcji i przekierowaniu do Default.aspx, jeśli dodam User.Identity.IsAuthenticated, zwraca true.

Dlaczego?

0
user829174 28 sierpień 2012, 14:19

2 odpowiedzi

Najlepsza odpowiedź

Należy pamiętać, aby zapisać uwierzytelnianie dla następnego żądania HTTP za pomocą FormsAuthentication.SetCookie .

Z MSDN:

Tworzy bilet uwierzytelniający dla dostarczonej nazwy użytkownika i dodaje go do pobierania plików cookies reakcji lub do adresu URL, jeśli używasz uwierzytelniania COOKIESESS.

0
matthewnreid 28 sierpień 2012, 14:22