Witam
Zrobiłem rejestrację w mojej aplikacji asp.net wykorzystując membership i wszysto idzie ok, ale nie mogę uporać się z problemem logowania użytkowników.
Mam metodę logowania w pliku login.aspx:
public void LogOn(object sender, EventArgs e)
{
if (Membership.ValidateUser(login_name.Text, login_pass.Text))
{
login_label.Text = "Zostałeś zalogowany pomyślnie, za chwilę zostaniesz przekierowany do strony głównej";
FormsAuthentication.RedirectFromLoginPage(login_name.Text, true);
}
else
{
login_label.Text = "Nie można zalogować. Spróbuj ponownie";
}
}
oraz kontrolki w Masterpage.aspx:
<form id="main_form" runat="server">
<div>
<div class="header" runat="server">
</div>
<div class="right_corner_element">
<asp:LoginStatus ID="loginstatus1" runat="server" LoginText="Logowanie/rejestracja" LogoutText="Wyloguj się"
/>
<asp:LoginView id="loginview1" runat="server">
<AnonymousTemplate>
<h2>Użytkownik niezalogowany</h2>
</AnonymousTemplate>
<LoggedInTemplate>
<asp:LoginName runat="server" FormatString="Zalogowany jako {0}"/>
</LoggedInTemplate>
</asp:LoginView>
<h1>Oferty nieruchomości</h1>
</div>
</div>
<asp:ContentPlaceHolder ID="main_content" runat="server"></asp:ContentPlaceHolder>
</form>
Problem jest w tym, że metoda membership.validateuser zwraca True, ale kontrolka nie zmienia się po przekierowaniu na stronę główną tj. gdy użytkownik jest zalogowany, powinna się wyświetlić kontrolka LoginName, a z nieznanych mi przyczyn ciągle się wyświetla anonymoustemplate.
O co w tym chodzi?