[ mii @ 31.08.2006. 11:08 ] @
Imam jednu aplikaciju koja ima login stranu i kada se korsinik loguje,njegov username se prosledjuje na drugu stranicu Response.Redirect("http://localhost/Podgorica/default.aspx?myVal="+ UserEmail.Value);

stavio sam u webconfig da timeout="10",u istom direktorijumu imam web stranice koje naravno trebaju da se vide kada se ulogujes,zbog timeouta,pitanje je sledece:
Kada se korisnik loguje njegov username se prosledjuje na stranicu koja se koristi za unos(takodje se username unosi u bazu-koristim label za to),,ali ako predjes na drugu stranicu i ponovo se vratis naravno da to nije ista stranica kao ona koja je bila posle redirect,da konkretizujem kako sacuvati/zadrzati prosledjenu vrijednost na proslijednjenu stranicu do trajanja timeout="10" a da pri tome mozez prelaziti na drugu stranicu i ponovo na proslijedjenu.

Pozdrav
[ VerbatimBOT @ 31.08.2006. 11:19 ] @
Ja koliko sam shvatio bih ti preporučio da "šetaš" tu vrednost putem QueryStringa od jedne do druge stranice. Tako ćeš je uvek imati nadohvat ruke.
[ jablan @ 31.08.2006. 11:35 ] @
Ja te nisam baš shvatio. Možda sesija može da ti pomogne.
[ StrokaviKod @ 31.08.2006. 11:44 ] @
Mozda prvo da sredis misli pa onda da postavis pitanje :). Salu na stranu, konfuzno zvucis pa cu biti slobodan da zakljucim isto kao i Jablan da ti je potrebna sesija.
[ VerbatimBOT @ 31.08.2006. 11:57 ] @
Da bre!
Seeesssiiijaaaa!
Sesija rules! :)
[ mii @ 31.08.2006. 11:59 ] @
Priznajem da sam mozda bio nejasan,ali evo dopunjeno pitanje:

kada se korisnik loguje zelim da se njegov username prikaze na svakoj stranice koja se nalazi u virtuelnom direktorijumu, naravno sve su stranice povezane,VerbatiumBOT je mozda dao pravo resenje ,ali kako da "setam" od jedne do druge stranice preko QueryStringa ?
ako neko ima drugi predlog nek se javi,nadam se da sam sada bio jasniji ...
[ jablan @ 31.08.2006. 12:11 ] @
Je l' ti je login strana u istoj aplikaciji? Ako jeste, sesija je rešenje.
[ VerbatimBOT @ 31.08.2006. 12:15 ] @
Prvo da obrazložim ideju:
imamo tri strane:
1.aspx
2.aspx
3.aspx

kretanje od prve do druge stranice radimo normalno:
Code:

Response.Redirect("2.aspx?myVal=" + vrednost)


od druge na treću:
Code:

Response.Redirect("3.aspx?myVal=" + Request["myVal"])    // ovo znači uzmi iz postojećeg QueryStringa sa strane 2.aspx i ubaci u QueryString za 3.aspx


i od treće na prvu:
Code:

Response.Redirect("1.aspx?myVal=" + Request["myVal])


Mada mislim da je možda čak i bolje da smestiš tu vrednost u Session objekat
Code:

Session.Add("myVal", vrednost)


i onda gde ti god treba da vrednost ti je čitaš iz Sesije
Code:

lblKorisnik.Text = "Dobrodošli " + Session("myVal")


Sad samo zavisi da li hoćeš da se ta tvoja vrednost vidi u QueryStringu ili ne? Ako ne, ideš preko Sesije.
[ mii @ 31.08.2006. 13:02 ] @
Jablan login strana je u istoj apliakaciji,Verbatim hvala,nisam nikad radio sa session pa cu pogledati malo to resenje da ga rijesim tako,ako bude pitanje javim se
Hvala
[ mii @ 31.08.2006. 13:42 ] @
uzgred kako izgledaju parametri svi koji se nalaze u webconfig za session?
[ VerbatimBOT @ 31.08.2006. 14:11 ] @
Mislim da bi to trebalo da bude u machine.config a ne web.config.
[ mii @ 31.08.2006. 14:25 ] @
VerbatimBOT,probao sam tvoju ideju sa "setanjem" Quesrystringa ,nije mi samo jasno kada se proslijedi sa prve stranice na drugu, i ta vrijednost stigne na drugu (to je OK)valjda bi trebalo napisati ako se klikne treca stranica da se proslijedi Quesrystringa sa druge na trecu?kako napisat
if 3.aspx clicked
Response.Redirect("3.aspx?myVal=" + Request["myVal"])

znam da si detaljno objasnio,samo gdje stavljas sve gore pomenute Response.Redirect ?

Hvala unaprijed
[ Dejan Vesic @ 31.08.2006. 14:26 ] @
Sesije se uključuju / isključuju na nivou sajta / virtuelnog direktorijuma kroz IIS konzolu (mada može i programski).

Izabereš sajt u IIS konzoli, desno dugme, Properties, Home Directory ili Virtual Directory kartica, Configuration dugme, Options kartica, "Enable Session state" checkbox.
[ VerbatimBOT @ 31.08.2006. 14:36 ] @
Citat:
mii:gdje stavljas sve gore pomenute Response.Redirect ?


To mora da odradiš u Click dogadjajima za dugmad (npr. LinkButton). Ne možeš da ubaciš za običan hyperlink (pretpostavljam da je tu nastala zabuna).
[ mii @ 31.08.2006. 14:46 ] @
Tacno tu je doslo do zabune,jer koristim javascript on mouse over ,znaci nema link button
[ VerbatimBOT @ 31.08.2006. 14:53 ] @
Pa ne znam u čemu je problem, jer ti za taj link kreiraš putanju "strana.aspx?myVal=" + tamoNekaVrednost?
Nisam nikada ovo radio preko javaScripta, ali kapiram da može...?
[ mmix @ 31.08.2006. 15:08 ] @
Citat:
Dejan Vesic: Sesije se uključuju / isključuju na nivou sajta / virtuelnog direktorijuma kroz IIS konzolu (mada može i programski).


Ne asp.net sesjie, tako iskljucujes stare ASP (VBScript) sessije.
Sam asp.net engine ne koristi podesavanja iz ovog dijaloga, sva podesavanja su u hijerarhiji config fajlova i jedini nacin da ne-agresivno iskljucis sesije na nivou cele aplikacije je da atribut mode u <sessionState> tagu web.config fajla prebacis na "Off":

Code:

<sessionState mode="Off">
[ Prokleta_Nedelja @ 01.09.2006. 09:36 ] @
Sessija je definitivno jednostavnija od QueryStringa

koristi se

Session.Add ("ime korisnika", string_ime_korisnika)

a ucitavas label1.text= session.item("ime korisnika")

Mada mozda za ovo je podesniji Cookie
[ mii @ 01.09.2006. 11:04 ] @
slazem se da je jednostavnija od Querystringa:
"Sessija je definitivno jednostavnija od QueryStringa

koristi se

Session.Add ("ime korisnika", string_ime_korisnika)

a ucitavas label1.text= session.item("ime korisnika")

Mada mozda za ovo je podesniji Cookie "

samo sam ja izgleda preskocio neki pocetni korak???
da li webconfig treba ovako da izgleda?
<sessionState
mode="InProc"
cookieless="false"
timeout="20"
/>
ako je to ok? kako treba da izgleda moja login strana sa username i password da bi bio aktivan session tj da bi se vrijednost username proslijedila preko session na sve stranice ?



[ mmix @ 01.09.2006. 11:57 ] @
Citat:
mii: Mada mozda za ovo je podesniji Cookie


Samo mala napomena, nemoj koristiti cookie da stovaris podatke. Cookie je uvek deo http header sekcije i svaki put se seta od klijenta do servera i nazad i zloupotreba istog cesto dovodi do situacija da http-filtering firewall ubije request. Naravno, nece se to desiti u tvom slucaju sa jednom email adresom, stavise slobodno je ubaci u cookie da kad korisnik dodjes ledeci put na tvoj sajt ne mora da je ukucava opet :), ali iz prakse vidim da kad jednom ljudi krenu tim putem brzo postaju nezasiti :)
Cookie treba da sadrzi neke re-conect informacije (npr email/userid i security token da korisnik ne mora da se uloguje sledeci put) ili kao dokaz o identitetu (kao sto je authentication cookie) i naravno moji "omiljeni" adaware cookies koji prate sta si i gde posecivao i profilisu reklamni sadrzaj na osnovu toga.

Za ovaj problem je sesija definitivno najbolje resenje.
[ draganc__ @ 01.09.2006. 15:53 ] @
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();

}
[ VerbatimBOT @ 01.09.2006. 16:06 ] @
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.
[ CallMeSaMaster @ 01.09.2006. 17:48 ] @
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
[ mii @ 02.09.2006. 22:46 ] @
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???????






[ draganc__ @ 04.09.2006. 06:40 ] @
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]
[ VerbatimBOT @ 04.09.2006. 10:38 ] @
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;
[ bunker @ 04.09.2006. 12:32 ] @
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.
[ mii @ 04.09.2006. 15:00 ] @
hvala puno!