• 27 odgovora
  • 8.692 pregleda
Re: Response.Redirect 01.09.2006. u 15:53 · pre 245 meseci #21
Ne znam da li sam dobro shvatio pitanje, ali zasto koristiti query string ili sesiju kad vec koristi forms authentication koji, dok je korisnik logovan, cijelo vrijeme pamti njegov user name, bez obzira na kojoj je strani. Onda samo treba:

if (User.IsAuthenticated())
{

//ne znam tacno kako ide sigurno cu pogrijesiti...
LabelUser.Text = User.Identity.Name.ToString();

}
Re: Response.Redirect 01.09.2006. u 16:06 · pre 245 meseci #22
Slažem se, ali to sa korisničkim imenom je bio sam jedan primer. Preko QueryStringa može da šeta neku drugu informaciju. Naravno da je glupo praviti sopstveni mehanizam kada već postoji ugradjeni u .NETu.
Potpis
Winners never quit, quitters never win.
Re: Response.Redirect 01.09.2006. u 17:48 · pre 245 meseci #23
Ovo sto je draganc rekao je definitivno rijesenje i samo kao takvo ti pomaze za tvoj problem jer bi sve ostalo bilo samo komplikovanje.
Medjutim i querystring ce ti sigurno trebati ukoliko ces na situ prikazivati neke podatke,kojih u bazi moze biti mali milion a vezani su za nekog korisinika.No ne trebas se sad time baviti nego obarti paznju na authentication. Evo jedan primjer kako mozes to odraditi
...
Dim Page As String = HttpUtility.UrlEncode(Request.Url.ToString)
If Thread.CurrentPrincipal.Identity.IsAuthenticated Then
Response.Redirect("login.aspx?ReturnURL=" & Page")
End If

.
.

Primjer provjerava jeli neko authenticated i ako nije onda ga redirect na login sajt
Re: Response.Redirect 02.09.2006. u 22:46 · pre 245 meseci #24
Ljudi hvala puno na odgovorima..ali ja i dalje ne uspijevam da prikazem ime korisnika koji se logovao na svim stranicama,evo coda:

Loginpage:

void Login_Click(Object sender, EventArgs E) {

if ((UserEmail.Value == "ivan") && (UserPass.Value == "password")) {
FormsAuthentication.RedirectFromLoginPage(UserEmail.Value, PersistCookie.Checked);

}
else {
Msg.Text = "Invalid Credentials: Please try again";
}

Response.Redirect("http://localhost/Podgorica/default.aspx?myVal="+ UserEmail.Value);


}


defaultpage.aspx (u kojoj je proslijedjen ime korisnika):

protected void Page_Load ( object src, EventArgs e ) {
if ( !IsPostBack ) {
addPanel.Visible = true;
postPanel.Visible = false;
string tbValue = Request.QueryString["myVal"];
Label3.Text=tbValue;

}
//dalji dio coda je nebitan za ovo//

druga stranica na kojoj zelim da se vidi ime korisnika:

protected void Page_Load ( object src, EventArgs e ) {
if ( !IsPostBack ) {
string vrednost = (string)(Session["myVal"]);
Session.Add("myVal", vrednost);


Label1.Text = vrednost;

}

}

ali na ovoj stranici ne vidim ime korisnika?????///

GDJE JA OVDJE GRIJESIM???????






Re: Response.Redirect 04.09.2006. u 06:40 · pre 245 meseci #25
Nisam ni trazio gresku u kodu jer vidim da grijesis u samoj koncepciji, to sam ti vec napisao gore. Ne trebas prosljedjivati ime korisnika ni preko query stringa ni preko sesije.

Gore sam ti napisao otprilike kako ces u default.aspx ili bilo kojoj strani vidjeti ime korisnika (to odradis u page load metodi).

Na taj tvoj nacin nikada neces biti siguran da li je korisnik logovan uopste.

Vidim da radis redirect preko localhost-a, autentikacija ti nece raditi ako pristupas sajtu preko localhost-a, nego moras ici preko imena racunara. Kad smo vec kod toga pogresno je tako zakucavati putanje, dovoljno je Response.Redirect("default.aspx"), znaci samo relativno, jer kad podignes takvu stranu na neki web server onda sve radi, a kod tebe jok.

[Ovu poruku je menjao draganc__ dana 04.09.2006. u 07:50 GMT+1]
Re: Response.Redirect 04.09.2006. u 10:38 · pre 245 meseci #26
Iako je već napisao draganc_, evo čisto da malo "prodetaljišem"...
Ne znam gde ti nastaje problem, kada za to ti trebaju samo jedna metoda i jedan properti:
Da bi proverio da li je korisnik ulogovan, radiš preko metode Page.User.IsAutentificated(). Ako vraća TRUE znači da je ulogovan a ako je FALSE znači da nije.
Da bi u bilo kom trenutku dobio korisničko ime (trenutno ulogovanog) korisnika, tražiš ga preko propertija Page.User.Identity.Name.

Dakle ako bi hteo da u slučaju da je korisnik ulogovan ispišeš njegovo korisničko ime u nekoj labeli, to bi bilo ovako:
Code:

//  ovo ide u Page_Load dogadjaj
if (Page.User.IsAutentificated() == true)
lblWelcomeMsg.Text = "Dobrodošli " + Page.User.Identity.Name;
Potpis
Winners never quit, quitters never win.
Re: Response.Redirect 04.09.2006. u 12:32 · pre 245 meseci #27
Ja mislim da trosite previse energije na gluposti. Mii, procitaj omiljenog nam dnevnika www.google.com. Ili bar neku dobru asp.net knjigu. Bicce lakse svima, tebi prvenstveno. Uzmi najjednostavniji msdn primer i tamo cesljaj sta si hteo. Ili codeproject.com, tamo cces sigurno da naletis na vecc gotovo resenje.

Inace ja za email ulogovanog usera ne bih trosio sesije. Bolje je drzati ga u hidden polju na svakoj strani gde ti zatreba i iz Request.Forms kolekcije vaditi njegovu vrednost. Odatle ga i popunjavati, ako treba.
Potpis
Nije važno stići prvi. Važno je prvo da stigneš.
Re: Response.Redirect 04.09.2006. u 15:00 · pre 245 meseci #28
hvala puno!
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme