最近,我开始在现有的 Web 应用程序上使用基于声明的身份验证。一切正常,但为了更好地处理 SessionSecurity 令牌的到期,我想使用滑动到期。
但是,我无法为 SecurityTokenReceived 事件注册事件处理程序。
我的处理程序方法在 Global.asax.cs 中定义如下:
protected void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e) { ... }
但是,当在同一个文件的 Application_Start 中注册此处理程序方法时,如下所示:
FederatedAuthentication.WSFederationAuthenticationModule.SecurityTokenReceived += SessionAuthenticationModule_SessionSecurityTokenReceived;
Visual Studio 响应不存在与委托 System.EventHandler 匹配的 SessionAuthenticationModule_SessionSecurityTokenReceived 的重载。
我在 web.config 部分有以下设置:
<securityTokenHandlers>
<add type="Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sessionTokenRequirement lifetime="0:02" />
</add>
</securityTokenHandlers>
我已经阅读了 MSDN 上的一些可用文档,但我不明白为什么不接受事件处理程序。有人可以帮忙吗?