WSFederationAuthenticationModule.SessionSecurityTokenCreated 事件

定义

当会话安全标记已从安全标记服务标记 (STS) 创建时发生。

public:
 event EventHandler<System::IdentityModel::Services::SessionSecurityTokenCreatedEventArgs ^> ^ SessionSecurityTokenCreated;
public event EventHandler<System.IdentityModel.Services.SessionSecurityTokenCreatedEventArgs> SessionSecurityTokenCreated;
member this.SessionSecurityTokenCreated : EventHandler<System.IdentityModel.Services.SessionSecurityTokenCreatedEventArgs> 
Public Custom Event SessionSecurityTokenCreated As EventHandler(Of SessionSecurityTokenCreatedEventArgs) 
Public Event SessionSecurityTokenCreated As EventHandler(Of SessionSecurityTokenCreatedEventArgs) 

事件类型

示例

void WSFederationAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
    //Manipulate session token here, for example, changing its expiration value
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenCreated event");
    System.Diagnostics.Trace.WriteLine("Key valid from: " + e.SessionToken.KeyEffectiveTime);
    System.Diagnostics.Trace.WriteLine("Key expires on: " + e.SessionToken.KeyExpirationTime);
}

注解

可以在会话令牌用于设置线程主体并将其写入会话 Cookie 之前,添加事件处理程序来修改会话令牌。 在事件处理程序中,可以通过 属性访问会话令牌 SessionSecurityTokenCreatedEventArgs.SessionToken 。 可以通过设置 SessionSecurityTokenCreatedEventArgs.WriteSessionCookie 属性来指定是否应写入会话 Cookie。

处理从安全令牌服务 (STS) 收到的WS-Federation登录响应消息 (“wsignin1.0”) 时,会从事件处理程序委托内部 OnAuthenticateRequest 引发此事件。 在验证从登录响应消息中的 wresult 或 wresultptr 参数反序列化的安全令牌之后,在 (和) 的 HttpContext.Current 属性上Thread.CurrentPrincipalUser设置声明主体之前,将引发该令牌。

重要

若要在引用模式下操作会话,Microsoft 建议为 WSFederationAuthenticationModule.SessionSecurityTokenCreated global.asax.cs 文件中的事件提供处理程序,并在 属性中SessionSecurityTokenCreatedEventArgs.SessionToken传递的令牌上设置 SessionSecurityToken.IsReferenceMode 属性。 这将确保会话令牌在每个请求的引用模式下运行,并且优先于仅在会话身份验证模块上设置 SessionAuthenticationModule.IsReferenceMode 属性。

适用于