SessionAuthenticationModule Sınıf

Tanım

WS-Federation senaryolarında oturum tanımlama bilgilerini işleyen bir ASP.NET modülü uygular.

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
Devralma
SessionAuthenticationModule

Örnekler

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;
}

Aşağıdaki XML, ASP.NET işlem hattında SAM'nin nasıl yapılandırileceğini gösterir. Tipik bir yapılandırmada bulunan diğer birçok öğe burada kısa süre için atlanır.

<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>  

Açıklamalar

(SAM) ASP.NET işlem hattında mevcut olduğunda oturum SessionAuthenticationModule tanımlama bilgilerini WS-Federation senaryolarda işler. HTTP isteğinden ham oturum tanımlama bilgisini okumak ve HTTP yanıtına CookieHandler yazmak için özelliği tarafından belirtilen tanımlama bilgisi işleyicisini kullanır. Ham oturum tanımlama bilgisini nesneler halinde SessionSecurityToken seri durumdan çıkarma amacıyla bir uygulama için yapılandırılan öğesini kullanırSessionSecurityTokenHandler. Oturum güvenlik belirteci, isteğin sunulduğu varlıkla ilişkili talepleri (Claim) ve sorumluyu (ClaimsPrincipal) içerir.

SAM, olay işleyicisini OnAuthenticateRequestHttpApplication.AuthenticateRequest ASP.NET işlem hattındaki olaya ekler. Bu işleyici oturum açma isteklerini durdurur ve oturum tanımlama bilgisi varsa, bunu bir oturum belirteci olarak seri durumdan çıkartır ve ve HttpContext.User özelliklerini oturum belirtecinde bulunan talep sorumlusuna ayarlarThread.CurrentPrincipal. Bu işlem sırasında SAM tarafından kullanıma sunulan diğer yöntemlerden birkaçını çağırır.

yöntemi SignOut , kullanıcının oturumunu kapatmak için çağrılabilir (örneğin, SignOut.aspx.cs arka planda kod dosyasında).

SAM, işlem hattına erişim sağlayan birkaç olayı kullanıma sunar. SessionSecurityTokenReceived ve SessionSecurityTokenCreated olayları tanımlama bilgilerinden okunan veya işleme sırasında oluşturulan oturum belirteçlerini değiştirmenize olanak tanır. Bu genellikle belirteçteki talepleri eklemek, kaldırmak veya dönüştürmek ya da süre sonu süresini ayarlamak için yapılır. SigningOut, SignedOutve SignOutError olayları, oturum kapatma isteklerinin işlenmesine yönelik kancalar sağlar. Birçok senaryoda, genellikle global.asax.cs dosyasına bu olaylar için işleyici eklemek yeterli olacaktır.

Daha karmaşık senaryolar için, özel bir SAM uygulamak için 'den SessionAuthenticationModule türetebilirsiniz. Bu amaçla, oturum işleme yaşam döngüsünün belirli aşamalarında özel davranış sağlayabilmeniz için sırasında OnAuthenticateRequest çağrılan ve SignOut kullanıma sunulan yöntemlerin çoğu.

SAM'yi bir yapılandırma dosyasındaki ASP.NET işlem hattına eklemek için, IIS sürüm 7 ve üzeri için öğesinin <system.webServer> veya IIS 7'den önceki sürümlerin öğesinin <system.web> altındaki HTTP modüllerine ekleyebilirsiniz. SAM tarafından kullanılan tanımlama bilgisi işleyicisi cookieHandler> öğesiyle< yapılandırılabilir.

Oluşturucular

SessionAuthenticationModule()

SessionAuthenticationModule sınıfının yeni bir örneğini başlatır.

Özellikler

ContextSessionSecurityToken

Geçerli HttpContextiçin etkin SessionSecurityToken olan öğesini alır.

CookieHandler

Oturum tanımlama bilgilerini okumak, yazmak ve silmek için kullanılan tanımlama bilgisi işleyicisini alır.

FederationConfiguration

Geçerli modül için geçerli olan nesneyi alır veya ayarlar FederationConfiguration .

(Devralındığı yer: HttpModuleBase)
IsReferenceMode

Oturum bilgilerinin (talep değerleri vb.) oturum tanımlama bilgisinde depolanıp depolanmayacağını veya oturum içeriğinin sunucu tarafında depolanıp depolanmayacağını belirten bir değeri alır veya ayarlar; yalnızca başvuruyu depolamak için tanımlama bilgisini kullanın.

Yöntemler

AuthenticateSessionSecurityToken(SessionSecurityToken, Boolean)

Gelen oturum belirtecini doğrulayarak gelen isteğin kimliğini doğrular. Doğrulama başarılı olduğunda, geçerli HTTP bağlamını ve iş parçacığı sorumlusunu belirtilen SessionSecurityTokenile güncelleştirir.

ContainsSessionTokenCookie(HttpCookieCollection)

Oturum tanımlama bilgisinin belirtilen tanımlama bilgisi koleksiyonunda olup olmadığını belirler.

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

Yapılandırılan oturum belirteci işleyicisini kullanarak belirtilen parametrelerden bir SessionSecurityToken oluşturur.

DeleteSessionTokenCookie()

Oturum tanımlama bilgisini siler ve önbellekten kaldırır.

Dispose()

Sınıfın geçerli örneği HttpModuleBase tarafından kullanılan kaynakları (bellek dışında) serbest bırakır.

(Devralındığı yer: HttpModuleBase)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Init(HttpApplication)

HTTP modülünü başlatır.

(Devralındığı yer: HttpModuleBase)
InitializeModule(HttpApplication)

Modülü başlatır ve modülün ASP.NET uygulama nesnesinden olayları işlemek için hazırlar.

InitializePropertiesFromConfiguration()

Yapılandırma dosyasındaki tanımlara göre modül özelliklerini başlatır.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnAuthenticateRequest(Object, EventArgs)

AuthenticateRequest olayı ASP.NET işlem hattından işler.

OnPostAuthenticateRequest(Object, EventArgs)

PostAuthenticateRequest olayı ASP.NET işlem hattından işler.

OnSessionSecurityTokenCreated(SessionSecurityTokenCreatedEventArgs)

Olayı tetikler SessionSecurityTokenCreated .

OnSessionSecurityTokenReceived(SessionSecurityTokenReceivedEventArgs)

Olayı tetikler SessionSecurityTokenReceived .

OnSignedOut(EventArgs)

Olayı tetikler SignedOut .

OnSigningOut(SigningOutEventArgs)

Olayı tetikler SigningOut .

OnSignOutError(ErrorEventArgs)

Olayı tetikler SignOutError .

ReadSessionTokenFromCookie(Byte[])

Belirtilen oturum tanımlama bilgisinden bir SessionSecurityToken okur.

SetPrincipalFromSessionToken(SessionSecurityToken)

ve Thread üzerindeki HttpContext sorumluyu, belirtilen oturum belirtecinde bulunan sorumluya ayarlar.

SignOut()

Geçerli kullanıcıyı imzalar ve ilişkili olayları tetikler.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
TryReadSessionTokenFromCookie(SessionSecurityToken)

Oturum tanımlama bilgisinden bir SessionSecurityToken okuma girişiminde bulunur ve oturum tanımlama bilgisinin başarıyla okunup okunmadığını belirten bir değer döndürür.

ValidateSessionToken(SessionSecurityToken)

Belirtileni SessionSecurityToken doğrular ve kimliklerini döndürür.

WriteSessionTokenToCookie(SessionSecurityToken)

Belirtilen SessionSecurityToken değeri bir oturum tanımlama bilgisine yazar.

Ekinlikler

SessionSecurityTokenCreated

Oturum güvenlik belirteci oluşturulduğunda gerçekleşir.

SessionSecurityTokenReceived

Oturum güvenlik belirteci bir tanımlama bilgisinden okunduğunda gerçekleşir.

SignedOut

Kullanıcı oturumu kapatıldıktan sonra gerçekleşir.

SigningOut

Oturum açma oturumu silinmeden önce gerçekleşir.

SignOutError

Oturumu kapatma sırasında bir hata olduğunda oluşur.

Şunlara uygulanır