Witam,

mam dość spory problem, z którym nie mogę sobie poradzić. Chciałem wykorzystać LoginView w master page'u, żeby zabronić niezalogowanym użytkownikom oglądanie strony. Wszystko byłoby ładnie, jednak przy wpisaniu poprawnych danych Login nie znika.

Kod master w master page'u odpowiedzialny za wywoływanie kontrolki:

<asp:LoginView ID="LoginViewMaster" runat="server">
                    <LoggedInTemplate> <!-- Zalogowany -->
                         <asp:ContentPlaceHolder ID="PageContent" runat="server"></asp:ContentPlaceHolder>
                    </LoggedInTemplate>
                    <AnonymousTemplate> <!-- Niezalogowany -->
                         <asp:Login ID="LoginEmployer" runat="server" onauthenticate="LoginEmployer_Authenticate">
                         </asp:Login>
                    </AnonymousTemplate>
                </asp:LoginView>

Metoda LoginEmployer_Authenticate:

protected void LoginEmployer_Authenticate(object sender, AuthenticateEventArgs e)
        {
            Login LoginForm = (Login)sender;
            e.Authenticated = CheckUser(LoginForm.UserName, LoginForm.Password)); 
            // Metoda zwraca true/false w zaleznosci od tego czy dany user znajduje sie w bazie.
            LoginForm.Visible = !e.Authenticated;
        }

Teraz pytanie, co robię źle? Użytkownik został uwierzytelniony, wiec forma logowania powinna zniknąć. Zamiast niech powinien się wczytać PageContent.