Cambio user control

venerdì 09 maggio 2008 - 16.21

stee85 Profilo | Senior Member

Ciao,
avrei bisogno di scambiare due pagine ascx, mi spiego meglio...
nella home page ho uno user control con il login, dopo che viene fatto il login devo scambiare il login con la pagina carrello.ascx
come posso fare?



grazie
Ste

freeteo Profilo | Guru

ciao,
devi caricarlo a runtime, quindi ti conviene aggiungere un pannello come contenitore della login.
Dopo che l'utente ha effettuato l'accesso, da codice la rendi invisibile.

Esempio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

stee85 Profilo | Senior Member

ok ci sono riuscita... grazie
ora però se volessi salvare il mio user e non perderlo come devo fare?
Ho provato con una session ma dopo un po scade,
se lo passo alla fine dell'indirizzo es. Response.Redirect("pagina.aspx?user="+user);
logicamente dopo lo perde.
Posso creare una variabile globale che posso richiamare quando ne ho voglia?
Ste

freeteo Profilo | Guru

ciao,
ti conviene partire da qualche tutorial dei vari tipi di authentication che mette a disposizione asp.net, così capisci meglio come far gestire al framework tutto quanto, senza (o quasi) scrivere codice per gestirti l'utente.
http://msdn.microsoft.com/it-it/library/aa291347(VS.71).aspx
http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/default.aspx
http://www.asp.net/learn/videos/video-06.aspx

Io ti consiglio di usare questa tecnica (Forms Authentication):
- Web.config:

<?xml version="1.0"?> <configuration> <appSettings/> <connectionStrings/> <system.web> .... <authentication mode="Forms"> <forms name="miosito" protection="All" loginUrl="~/login.aspx"> </forms> </authentication> <authorization> <allow users ="?" /> <allow users ="*" /> </authorization> </system.web> <!-- --> <location path="admin"> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location> .....

così gli dici che la pagina ( login.aspx ) è quella dedicata all'autenticazione, poi gli dici che tutti sono abilitati ( <allow users ="?" />...<allow users ="*" /> ) per tutto il sito tranne per la directory "admin" che non ammette anonimi, ma solo quelli autenticati.

come vedi hai definito qual'è la pagina di login, e si arrangia lui se mai dovesse scadere a redirigere la richiesta su quella pagina per farsi ridare le credenziali


- login.aspx:
in questa pagina trascini dentro un controllo "LoginControl" che fa tutto lui, l'unica cosa è decidere come valutare il fatto che siano corrette le credenziali immesse, quindi nell'evento:

... <asp:Login ID="login" runat="server" OnLoggingIn="login_OnLoggedIn"> </asp:Login> ... protected void OnLoggedIn(object sender, EventArgs e) { //--- decidi qui che controlli fare per abilitare o meno l'utente if (login.UserName == "matteo" && login.Password == "raumer" ) FormsAuthentication.RedirectFromLoginPage(txtUser.Text, false); else lblOut.Text = "* dati non corretti."; }



- /admin/pagina.aspx:
qui non devi gestire niente di quello che dicevamo prima, tu disegni la pagina come vuoi normale, solo che nel web.config hai detto che quelle pagine sono protette, e quindi il motore .net se non ha un utente registrato, redirige alla login per farsi dare le credenziali.


Ovviametne la mia spiegazione è molto veloce, devi guardare meglio i link che ti ho dato per capire bene...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

stee85 Profilo | Senior Member

grazie..
ho ancora un problema..
allora la mia pagina di login è inclusa nella home page.
Il web.config l'ho settato come mi hai detto e anche login.ascx

Quando faccio accedi e il login è corretto faccio questo
FormsAuthentication.RedirectFromLoginPage(user, false);

Ora però nella mia homePage dove è incluso il login devo recuperare se il login è andato a buon fine e scambiare la pagina
login.ascx con riepilogo.ascx

Ho provato a mettere nella home User.Identity.Name ma non torna niente

Grazie
Ste

freeteo Profilo | Guru

>Ora però nella mia homePage dove è incluso il login devo recuperare
>se il login è andato a buon fine e scambiare la pagina
>login.ascx con riepilogo.ascx
per gestire questa cosa c'è il controllo "loginView" dove specifichi cosa visualizzare nei 2 casi: "Loggato" e "Anonimo".
Nel tuo caso, nel template "Loggato" metti il tuo controllo "riepilogo.ascx" mentre nel template "Anonimo" metti "login.ascx".

* scusami ho visto adesso che stiamo parlando di asp.net 1.1, ci sono questi controlli? perchè non la uso più questa versione, qiundi potrei dirti delle cose non corrette


>Ho provato a mettere nella home User.Identity.Name ma non torna
>niente
caspita deve tornarti il nome dell'utente loggato, casomai prova ad allegare uno zip del progetto che vediamo dove sta il problema




ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5