SessionAuthenticationModule.SessionSecurityTokenReceived 事件

定义

当会话安全标记已从 cookie 读取时发生。

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

事件类型

示例

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

void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
    System.Diagnostics.Trace.WriteLine("Handling SessionSecurityTokenReceived event");
}

注解

成功SessionSecurityTokenReceived从会话 cookie 中读取会话令牌 (SessionSecurityToken) 后,将从 方法中OnAuthenticateRequest引发该事件。

可以使用此事件修改会话令牌的属性,然后再沿管道进一步传递该令牌,并用于对发出请求的实体进行身份验证, (用户) 。 最常见的方案之一涉及修改会话过期时间 (通过 SessionSecurityToken.ValidTo 属性访问) ,以替代通过 lifetimesessionTokenRequirement> 元素的 属性在配置中设置的<会话过期时间。 通过修改每个请求的此属性,可以实现滑动会话;即,在每次用户访问站点时延长生存期的会话。

在事件处理程序中,可以通过 属性访问令牌 SessionSecurityTokenReceivedEventArgs.SessionToken 。 修改令牌后,可以通过将 设置为 SessionSecurityTokenReceivedEventArgs.ReissueCookietrue来确保将其写回到 Cookie。 最后, SessionSecurityTokenReceived 事件是可取消的事件,你可以设置 CancelSessionSecurityTokenReceivedEventArgs 属性以中止对请求的进一步处理。

适用于