Aracılığıyla paylaş


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, kısa süre için burada 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 SessionSecurityToken nesneler halinde seri durumdan çıkarmak için 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 belirtecinde 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ı).

SAM, işlem işlem hattına erişim sağlayan çeşitli olayları 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 son kullanma 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 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 ve SignOut sırasında OnAuthenticateRequest çağrılan yöntemlerin çoğu kullanıma sunulur.

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

Oluşturucular

Name Description
SessionAuthenticationModule()

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

Özellikler

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

Yalnızca bir başvuruyu depolamak için tanımlama bilgisini kullanarak oturum bilgilerinin (talep değerleri vb.) oturum tanımlama bilgisinde mi yoksa oturum içeriğinin sunucu tarafında mı depolanması gerektiğini belirten bir değer alır veya ayarlar.

Yöntemler

Name Description
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()

Geçerli örneğin Type 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ımları temel alarak modül özelliklerini başlatır.

MemberwiseClone()

Geçerli Objectbasit 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 yer alan sorumluya ayarlar.

SignOut()

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

ToString()

Geçerli nesneyi temsil eden bir dize 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ı gösteren bir değer döndürür.

ValidateSessionToken(SessionSecurityToken)

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

WriteSessionTokenToCookie(SessionSecurityToken)

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

Ekinlikler

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

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

Şunlara uygulanır