HttpSessionState.IsCookieless Tulajdonság

Definíció

Beolvas egy értéket, amely jelzi, hogy a munkamenet-azonosító beágyazva van-e az URL-címbe, vagy EGY HTTP-cookie-ban van-e tárolva.

public:
 property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean

Tulajdonság értéke

trueha a munkamenet beágyazva van az URL-címbe; egyéb esetben. false

Példák

Az alábbi példakód a cookieless munkamenet-attribútumot igaz értékre állítja a Web.config fájlban.

<configuration>
  <system.web>
    <sessionState
      mode="InProc"
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

Megjegyzések

ASP.NET minden böngészőben egyedileg azonosítja a munkameneteket. Alapértelmezés szerint egy munkamenet egyedi azonosítója egy nem lejáró munkamenet cookie-jában van tárolva a böngészőben. Megadhatja, hogy a munkamenet-azonosítók ne legyenek cookie-ban tárolva, ha az cookieless attribútumot true a sessionState konfigurációs elemben állítja be.

Note

Az alkalmazás biztonságának javítása érdekében az alkalmazásnak engedélyeznie kell a felhasználók kijelentkezését, és ekkor kell meghívnia a metódust Abandon . Ez csökkenti annak lehetőségét, hogy a nem kívánt forrás az URL-cím egyedi azonosítóját használva lekérje a munkamenetben tárolt személyes adatokat a felhasználó számára.

ASP.NET a cookie nélküli munkamenet állapotát úgy tartja fenn, hogy automatikusan beszúr egy egyedi munkamenet-azonosítót a lap URL-címébe. Például a következő URL-címet módosította ASP.NET, hogy tartalmazza a lit3py55t21z5v55vlm25s55 egyedi munkamenet-azonosítót:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx

ASP.NET módosítja az összes kért oldalon található hivatkozásokat úgy, hogy az egyes oldalak böngészőbe való elküldése előtt beágyaz egy munkamenet-azonosító értéket a hivatkozásokba. A munkamenet állapota mindaddig megmarad, amíg a felhasználó a webhely által biztosított hivatkozások elérési útját követi. Ha azonban a felhasználói ügynök átír egy URL-címet, a munkamenet-állapot példánya elveszik.

A munkamenet-azonosító az alkalmazás nevét követő perjel után és a fennmaradó fájl- vagy virtuáliskönyvtár-azonosítók előtt van beágyazva az URL-címbe. Ez lehetővé teszi ASP.NET az alkalmazás nevének feloldását, mielőtt bevonja a SessionStateModule a kérelembe.

Alapértelmezés szerint a cookie nélküli munkamenetekben használt munkamenet-azonosítók újra lesznek használva. Vagyis ha egy kérés lejárt munkamenet-azonosítóval történik, a rendszer egy új munkamenetet indít el a kérelemhez megadott munkamenet-azonosító használatával. Ez a viselkedés a munkamenet-adatok nemkívánatos megosztását eredményezheti, ha egy cookie nélküli munkamenet-azonosítót tartalmazó hivatkozást több böngészővel osztanak meg, például keresőmotoron vagy más programon keresztül. A munkamenet-azonosítók újrahasznosításának letiltásával csökkentheti a munkamenet-adatok több ügyfél általi megosztásának lehetőségét. Ehhez állítsa a regenerateExpiredSessionIdsessionState konfigurációs elem attribútumát a következőre true: . Ez egy új munkamenet-azonosító generálásához vezet, ha egy cookie nélküli munkamenet-kérés lejárt munkamenet-azonosítóval történik. Vegye figyelembe, hogy ha a lejárt munkamenet-azonosítóval küldött kérés a HTTP POST metódust használja, akkor a közzétett adatok elvesznek, ha regenerateExpiredSessionIdtrue, mivel ASP.NET átirányítást hajt végre annak biztosítása érdekében, hogy a böngésző új munkamenet-azonosítóval rendelkezzen az URL-címben.

Note

Miközben az attribútumot úgy regenerateExpiredSessionId állítja be, hogy true csökkentse a munkamenet-adatok nem kívánt megosztásának lehetőségét, nem véd meg egy nemkívánatos forrást, amely hozzáférést szerez egy másik felhasználó munkamenetéhez az SessionID érték beolvasásával és a kiszolgálóra irányuló kérelmekbe való beleszámításával. Ha privát vagy bizalmas adatokat tárol munkamenet-állapotban, javasoljuk, hogy SSL használatával titkosítsa a böngésző és a kiszolgáló közötti kommunikációt, amely tartalmazza a SessionID.

A következőre érvényes:

Lásd még