[ mii @ 20.09.2006. 12:01 ] @

Pozdrav

imam aplikaciju gdje se korisnici loguju ,timeout za tu apliakciju je 30 minuta (stavljeno u webconfig) .e sad posto zelim da korisnik koji ne zeli da ceka 30 minuta stavio sam button gdje se on izloguje,to sam radio preko cookia,tj u login stranicu sam stavio code koji kreaira cokie koji cu da brisem kasnije sa druge stranice :

code za login page(sto se tice cookie):

HttpCookie myCookie = new HttpCookie("UserName");
myCookie.Value = txtUser.Text;
Response.Cookies.Add(myCookie);

a ovo je code za button event na drugoj stranici koji korisnika vraca na login stranicu i brise cookie:

void SignOut(object objSender, EventArgs objArgs)
{
FormsAuthentication.SignOut();
Response.Cookies["UserName"].Value = null;
Response.Cookies["UserName"].Expires = new System.DateTime(1999,10,12);
Response.Redirect("http://localhost/krsman3/Login.aspx");

}

medjutim,klikom na dugme LogOut vraca me na login stranicu,ali cookie ne brise,tj link stranice koja je posjecena mogu da otvorim u drugom browseru....???
gdje je greska,? ako neko ima primjedbu,komentar,dodatak neka kaze..

Pozdrav
[ mii @ 21.09.2006. 09:01 ] @


zar niko nema komontar?
[ draganc__ @ 21.09.2006. 09:04 ] @
Taj tvoj LogOut nema nikakve veze sa Cookie. Nakon naredbe FormsAuthentication.SignOut(); korisnik je vec izlogovan sigurno. Vec sam ti prije rekao da ne moze FormsAuthentication raditi ako pristupas preko localhost-a, moras pristupiti preko imena tvog racunara.
[ mii @ 21.09.2006. 10:12 ] @
dragane,hvala na ponovnom objasnjenju ,stavio sma umjesto locahlosta ip adresu racunara, i probao u mrezi ista stvar,a ovo za cookie sam procitao ne netu pa ako imas vremena pogledaj

http://www.codersource.net/asp_net_forms_authentication.aspx
[ Ogi_Boy @ 21.09.2006. 11:19 ] @
za login ja sam koristio session objekt, koji mi je mnogo prakticniji. Trajanje sessije po defaultu je 20 min.


kada je uspjesan login, stavim session.add...

a kada se izloguje session.remove...


radi u localhostu i na webu
[ mmix @ 21.09.2006. 11:32 ] @
Citat:
draganc__:  Vec sam ti prije rekao da ne moze FormsAuthentication raditi ako pristupas preko localhost-a, moras pristupiti preko imena tvog racunara.


Ne moze? Zasto ne?
Ja koliko znam formsauthentication kreira temporary memory cookie as tokenom, ne vidim kakve veze ima localhost sa tim...
[ mii @ 21.09.2006. 13:28 ] @

mmix
kako onda ubijas cookie kada radis logout?
[ mmix @ 21.09.2006. 14:43 ] @
Citat:
mii: kako onda ubijas cookie kada radis logout?


Kao sto si ti radio, sa FormsAuthentication.SignOut(); ili ako korisnik zatvori browser (rclick|Open in new tab ili open in new window ili Ctrl-N kreiraju novi prozor ali nasledjuju authentication cookie).

Ono sto je meni ovde sumnjivo je ceo taj tvoj koncept sa forms authentikacijom. Da li je to tebi uopste ukljuceno u web.config? (ispisi ovde sadrzaj <authentication> taga iz web.config). Da je to nastelovano kako treba otvaranje linka u drugom prozoru posle logout bi izazvalo automatsku redirekciju na login stranicu bez obzira na tvoj cookie)

Cookie koji si ti napravio nema veze sa ugradjenom authentikacijom u ASP.NETu kao sto ti je dragan to napomenuo. Tvoj cookie ostaje posto je permanent i snimljen je na disk korisnika, i efektivno ti ga ubijas dobro.

Tvoj problem je sto nedostatak cookia ne sprecava posecivanje stranice i cookie je generalno los princip odrzavanja sesija (korisnik moze da iskljuci permanent cookies). Moja inicijalna pretpostavka je da ti kreiras forms authentication cookie u kodu, ali je sam forms authentication engine iskljucen








[ mii @ 21.09.2006. 15:04 ] @
MMIX
ja kad sa ovakvim codom uradim logout i kada iisklucim taj browser,svaki sledeci otvoreni browser pri posjeti neke stranice trazi user name sto je ok,znaci problem je kada se vratim na login stranu (posle logout) na tu istu stranu (a i svaki prethodni otvoren explorer) kada ukucam link stranice od koje sam se odlogovao ,mogu da je vidim,sto je problem:

evo kako izgleda moj config file:

<configuration>
<system.web>
<customErrors mode="Off"/>
<authentication mode="Forms">
<forms name="appNameAuth" path="/" loginUrl="login.aspx" protection="All" timeout="30">
<credentials passwordFormat="Clear">
<user name="ivan" password="test" />
<user name="krsman" password="test" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>


[ mmix @ 21.09.2006. 15:27 ] @
web.config je ok... U stvari sad kontam sta je tvoj problem.
to sto ti vidis je ustvari kesirana verzija stranice u browseru. Kad bi kliknuo na neko dugme sa te kesirane stranice izazavao bi request serveru i bio redirektovan u login (posto ti je formscookie ubijen)

On sto tebi treba je instrukcija browseru da ne kesira stranice, a to je:

Code:

Response.Cache.SetCacheability(HttpCacheability.NoCache) 


Da ne bi ovo stavljao u svaku stranicu, mozes da ubacis taj kod u global.asax u Application_BeginRequest event.

Imaj samo u vidu da je ovo samo instrukcija browseru, IE, Netscape i Firefox ce ispostovati ovaj request, sto ne znaci da ce i svi ostali browseri to ispostovati.
[ mii @ 22.09.2006. 08:48 ] @
mmix

Thank you very much!!!!
Rijesio si !!!!!!

Pozdrav!!!!!