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.