Sto cercando di far funzionare il provider di appartenenze.Membership ASP.NET: come impostare l'utente come registrato
Finora ho:
<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
</asp:Login>
chiamando:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if(Membership.ValidateUser(Login1.UserName, Login1.Password))
{
Response.Redirect("/admin/default.aspx");
// Set the user as logged in?
}
}
Se entro il corretto login/password, la funzione ValidateUser restituisce true. Quindi la mia domanda è: come faccio a impostare l'utente come registrato?
sto testando questo nelle mie pagine fare:
protected void Page_Load(object sender, EventArgs e)
{
if (Membership.GetUser()==null)
{
Response.Redirect("/admin/login.aspx");
}
// else "you are logged in, congratulations"
}
avrei usato le funzioni predefinite, ma non è solo di lavoro e una ricerca su google mi ha fatto pensare che io risparmiare tempo in realtà ricodificazione tutto ciò me stesso.
Qualsiasi cosa aiuterà!
MODIFICA: Per quanto riguarda la risposta accettata, è quella corretta per "come impostare l'utente come connesso" e funziona correttamente. Non ha risolto il mio problema specifico ma solo una parte di esso. Pensato se guardi i commenti penserai che troverai suggerimenti interessanti.
EDIT 2 e soluzione: Ok finalmente l'ho risolto grazie a tutti i commenti. Ecco quello che ho fatto, è più semplice di quello che mi aspettavo:
pagina che controlla login Stato:
protected void Page_Load(object sender, EventArgs e)
{
if (!Request.IsAuthenticated)
{
Response.Redirect("/admin/login.aspx");
}
Log out:
protected void LoginStatus1_Logout(object sender, LoginCancelEventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("/admin/login.aspx");
}
}
web.config:
<authentication mode="Forms" />
login:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if(Membership.ValidateUser(Login1.UserName, Login1.Password))
{
FormsAuthentication.SetAuthCookie(Login1.UserName, true);
Response.Redirect("/admin/default.aspx");
}
}
e ancora ottenere Catturato da se (Membership.GetUser() == nu ll). Dovrei provare ad ottenere lo stato di login in qualche altro modo? – marcgg
IMO, dovresti trattare solo questi elementi di accesso nella pagina Login.aspx. Il SetAuthCookie funziona, l'ho già usato prima. Se non funziona per te, c'è qualcosa nel tuo codice che sta rovinando tutto :( – Gromer
Tutto il mio codice è lassù Quello che sto cercando di fare altrove che nella pagina di accesso è "se non connesso quindi reindirizzare alla pagina di login ". – marcgg