SessionAuthenticationModule.SessionSecurityTokenCreated 事件

定义

当会话安全标记已创建时发生。

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) 

事件类型

示例

以下代码显示了在 ASP.NET Web 应用程序的 global.asax.cs 文件中实现的事件的处理程序 SessionSecurityTokenCreated 。 还必须将处理程序添加到 事件。 概述主题中 SessionAuthenticationModule 显示了一个更完整的示例。

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

注解

可以在将会话安全令牌写入 Cookie 之前使用此事件对其进行修改。

创建SessionSecurityTokenCreated会话令牌 () SessionSecurityToken 后,将从 方法中OnAuthenticateRequest引发该事件。 例如,如果事件的事件处理程序 SessionSecurityTokenReceived 修改了令牌,就会发生这种情况。

可以使用此事件修改会话令牌的属性,然后再沿管道进一步传递会话令牌,并用于对发出请求 (用户) 的实体进行身份验证。

在事件处理程序中,可以通过 属性访问令牌 SessionSecurityTokenCreatedEventArgs.SessionToken 。 修改令牌后,可以通过将 属性true设置为 SessionSecurityTokenCreatedEventArgs.WriteSessionCookie 来确保将其写回 Cookie。 与不同, SessionSecurityTokenCreated 事件 SessionSecurityTokenCreated 不是可取消的事件。

适用于