SessionAuthenticationModule.SessionSecurityTokenCreated 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当会话安全标记已创建时发生。
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 不是可取消的事件。