SessionAuthenticationModule Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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. |