SessionAuthenticationModule Osztály

Definíció

Implementál egy ASP.NET modult, amely munkamenet-cookie-kat dolgoz fel WS-Federation forgatókönyvekben.

public ref class SessionAuthenticationModule : System::IdentityModel::Services::HttpModuleBase
public class SessionAuthenticationModule : System.IdentityModel.Services.HttpModuleBase
type SessionAuthenticationModule = class
    inherit HttpModuleBase
Public Class SessionAuthenticationModule
Inherits HttpModuleBase
Öröklődés
SessionAuthenticationModule

Példák

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup

    //SUBSCRIBE TO SAM EVENTS
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenCreated += new EventHandler<SessionSecurityTokenCreatedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenCreated);
    FederatedAuthentication.SessionAuthenticationModule.SessionSecurityTokenReceived += new EventHandler<SessionSecurityTokenReceivedEventArgs>(SessionAuthenticationModule_SessionSecurityTokenReceived);
    FederatedAuthentication.SessionAuthenticationModule.SigningOut += new EventHandler<SigningOutEventArgs>(SessionAuthenticationModule_SigningOut);
    FederatedAuthentication.SessionAuthenticationModule.SignedOut += new EventHandler(SessionAuthenticationModule_SignedOut);
    FederatedAuthentication.SessionAuthenticationModule.SignOutError += new EventHandler<ErrorEventArgs>(SessionAuthenticationModule_SignOutError);
}
void SessionAuthenticationModule_SignOutError(object sender, ErrorEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SignOutError event");
}

void SessionAuthenticationModule_SignedOut(object sender, EventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SignedOut event");
}

void SessionAuthenticationModule_SigningOut(object sender, SigningOutEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SigningOut event");
}

void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenReceived event");
}

void SessionAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenCreated event");
    //Store session on the server-side token cache instead writing the whole token to the cookie.
    //It may improve throughput but introduces server affinity that may affect scalability
    FederatedAuthentication.SessionAuthenticationModule.IsReferenceMode = true;
}

Az alábbi XML bemutatja, hogyan konfigurálhatja a SAM-et a ASP.NET folyamatban. Sok más elem, amely egy tipikus konfigurációban jelen van, hiányzik itt a rövidség kedvéért.

<configuration>
  <system.webServer>
    <modules>
      <!--WIF 4.5 modules -->
      <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add name="WsFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    </modules>
  </system.webServer>
</configuration>

Megjegyzések

Ha az ASP.NET folyamatban van, a SessionAuthenticationModule (SAM) munkamenet-cookie-kat dolgoz fel WS-Federation forgatókönyvekben. A tulajdonság által CookieHandler megadott cookie-kezelővel olvassa be a nyers munkamenet-cookie-t a HTTP-kérésből, és írja be a HTTP-válaszba. SessionSecurityTokenHandler Az alkalmazáshoz konfigurált használatával deszerializálja a nyers munkamenet-cookie-t objektumokkáSessionSecurityToken. A munkamenet biztonsági jogkivonata tartalmazza a kérést kézbesítő entitáshoz társított jogcímeket (Claim) és egyszerű (ClaimsPrincipal) jogcímeket.

A SAM hozzáadja OnAuthenticateRequest eseménykezelőjét a HttpApplication.AuthenticateRequest eseményhez a ASP.NET folyamatban. Ez a kezelő elfogja a bejelentkezési kéréseket, és ha van munkamenet-cookie, deszerializálja azt egy munkamenet-jogkivonatba, és beállítja a Thread.CurrentPrincipalHttpContext.User tulajdonságokat a munkamenet-jogkivonatban található jogcímnévre. A folyamat során számos más, a SAM által közzétett metódust hív meg.

A SignOut metódus meghívható, hogy kijelentkeztethesse a felhasználót egy munkamenetből (például egy SignOut.aspx.cs kód mögötti fájlban).

A SAM számos olyan eseményt tesz elérhetővé, amelyek hozzáférést biztosítanak a feldolgozási folyamathoz. SessionSecurityTokenReceived Az SessionSecurityTokenCreated események lehetővé teszik a cookie-kból beolvasott vagy a feldolgozás során létrehozott munkamenet-jogkivonatok módosítását. Ez általában a jogkivonatban lévő jogcímek hozzáadására, eltávolítására vagy átalakítására, illetve a lejárati idő módosítására történik. A SigningOut, SignedOutés SignOutError az események horogokat biztosítanak a bejelentkezési kérések feldolgozásához. Sok esetben elegendő lesz egyszerűen kezelőket hozzáadni ezekhez az eseményekhez, gyakran a global.asax.cs fájlhoz.

Bonyolultabb forgatókönyvek esetén az egyéni SAM implementálásához használhatja SessionAuthenticationModule azokat. Ebből a célból számos metódust hív meg a rendszer, amelyek a OnAuthenticateRequestSignOut munkamenet feldolgozási életciklusának bizonyos szakaszaiban egyéni viselkedést biztosítanak.

A SAM-et egy konfigurációs fájlban hozzáadhatja a ASP.NET folyamathoz, ha hozzáadja azt a HTTP-modulokhoz az IIS 7-es és újabb verziójának <system.webServer> eleme alatt, vagy az IIS 7 előtti verziók <system.web> eleme alatt. A SAM által használt cookie-kezelő a cookieHandler< elemhez> konfigurálható.

Konstruktorok

Name Description
SessionAuthenticationModule()

Inicializálja a SessionAuthenticationModule osztály új példányát.

Tulajdonságok

Name Description
ContextSessionSecurityToken

Lekéri az aktuális SessionSecurityTokenHttpContextaktívt .

CookieHandler

Lekéri a munkamenet-cookie-k olvasásához, írásához és törléséhez használt cookie-kezelőt.

FederationConfiguration

Lekéri vagy beállítja az FederationConfiguration aktuális modulban érvényben lévő objektumot.

(Öröklődés forrása HttpModuleBase)
IsReferenceMode

Lekéri vagy beállít egy értéket, amely meghatározza, hogy a munkamenet-információkat (jogcímértékeket stb.) a munkamenet-cookie-ban kell-e tárolni, vagy hogy a munkamenet-tartalmat a kiszolgálóoldalon kell-e tárolni, a cookie-t használva csak egy hivatkozás tárolására.

Metódusok

Name Description
AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean)

Hitelesíti a bejövő kérést a bejövő munkamenet jogkivonatának hitelesítésével. Sikeres érvényesítés esetén frissíti az aktuális HTTP-környezetet és szálnevet a megadott SessionSecurityToken.

ContainsSessionTokenCookie(HttpCookieCollection)

Meghatározza, hogy egy munkamenet-cookie szerepel-e a megadott cookie-gyűjteményben.

CreateSessionSecurityToken(ClaimsPrincipal, String, DateTime, DateTime, Boolean)

Létrehoz egy SessionSecurityToken értéket a megadott paraméterekből a konfigurált munkamenet-jogkivonat-kezelővel.

DeleteSessionTokenCookie()

Törli a munkamenet-cookie-t, és eltávolítja a gyorsítótárból.

Dispose()

Felszabadítja az osztály aktuális példánya HttpModuleBase által használt erőforrásokat (a memória kivételével).

(Öröklődés forrása HttpModuleBase)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
Init(HttpApplication)

Inicializálja a HTTP-modult.

(Öröklődés forrása HttpModuleBase)
InitializeModule(HttpApplication)

Inicializálja a modult, és előkészíti a modul ASP.NET alkalmazásobjektumából származó események kezelésére.

InitializePropertiesFromConfiguration()

Inicializálja a modul tulajdonságait a konfigurációs fájl definíciói alapján.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
OnAuthenticateRequest(Object, EventArgs)

Kezeli a AuthenticateRequest eseményt a ASP.NET folyamatból.

OnPostAuthenticateRequest(Object, EventArgs)

Kezeli a PostAuthenticateRequest eseményt a ASP.NET folyamatból.

OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs)

Az eseményt emeli SessionSecurityTokenCreated ki.

OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs)

Az eseményt emeli SessionSecurityTokenReceived ki.

OnSignedOut(EventArgs)

Az eseményt emeli SignedOut ki.

OnSigningOut(SigningOutEventArgs)

Az eseményt emeli SigningOut ki.

OnSignOutError(ErrorEventArgs)

Az eseményt emeli SignOutError ki.

ReadSessionTokenFromCookie(Byte[])

Beolvassa a SessionSecurityToken megadott munkamenet-cookie-t.

SetPrincipalFromSessionToken(SessionSecurityToken)

Beállítja a rendszernevet a HttpContextThread megadott munkamenet-jogkivonatban található egyszerűre.

SignOut()

Kijelentkezteti az aktuális felhasználót, és előhozza a kapcsolódó eseményeket.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
TryReadSessionTokenFromCookie(SessionSecurityToken)

Megpróbál beolvasni egy SessionSecurityToken munkamenet-cookie-ból, és visszaad egy értéket, amely jelzi, hogy a munkamenet-cookie sikeres volt-e.

ValidateSessionToken(SessionSecurityToken)

Ellenőrzi a megadott SessionSecurityToken értéket, és visszaadja az identitásait.

WriteSessionTokenToCookie(SessionSecurityToken)

A megadott SessionSecurityToken adatokat egy munkamenet-cookie-ra írja.

esemény

Name Description
SessionSecurityTokenCreated

Munkamenet-biztonsági jogkivonat létrehozásakor következik be.

SessionSecurityTokenReceived

Akkor fordul elő, ha egy munkamenet biztonsági jogkivonatát cookie-ból olvasták be.

SignedOut

A felhasználó kijelentkezése után következik be.

SigningOut

A bejelentkezési munkamenet törlése előtt következik be.

SignOutError

Akkor fordul elő, ha a kijelentkezés során hiba lép fel.

A következőre érvényes: