gpt4 book ai didi

events - 如何处理 Global.asax 中的 SessionSecurityTokenReceived 事件?

转载 作者:行者123 更新时间:2023-12-02 09:34:06 25 4
gpt4 key购买 nike

我正在尝试在 WIF 中设置滑动 session ,需要处理 SessionSecurityTokenReceived .

我确信我在这里做了一些愚蠢的事情...但是 VS2010 不断告诉我在下面所示的位置没有适用的变量或成员。有人能指出我正确的方向吗?我已经到处搜索了如何定义此事件的处理的实际示例,但我找不到一个。

Global.asax

protected void Application_Start()
{

FederatedAuthentication.WSFederationAuthenticationModule.SecurityTokenReceived
+= SessionAuthenticationModule_SessionSecurityTokenReceived;
// ^^^ There is no applicable variable or member
}



void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
{
DateTime now = DateTime.UtcNow;
DateTime validFrom = e.SessionToken.ValidFrom;
DateTime validTo = e.SessionToken.ValidTo;
if ((now < validTo) &&
(now > validFrom.AddMinutes((validTo.Minute - validFrom.Minute) / 2))
)
{
SessionAuthenticationModule sam = sender as SessionAuthenticationModule;
e.SessionToken = sam.CreateSessionSecurityToken(
e.SessionToken.ClaimsPrincipal,
e.SessionToken.Context,
now,
now.AddMinutes(2),
e.SessionToken.IsPersistent);
e.ReissueCookie = true;
}
else
{
//todo: WSFederationHelper.Instance.PassiveSignOutWhenExpired(e.SessionToken, this.Request.Url);

// this code from: http://stackoverflow.com/questions/5821351/how-to-set-sliding-expiration-in-my-mvc-app-that-uses-sts-wif-for-authenticati

var sessionAuthenticationModule = (SessionAuthenticationModule)sender;

sessionAuthenticationModule.DeleteSessionTokenCookie();

e.Cancel = true;
}
}

最佳答案

我认为您不需要事件订阅。删除启动时的订阅并仅使用

SessionAuthenticationModule_SessionSecurityTokenReceived

ASP.Net 将为您连接。 (该模块必须命名为“SessionAuthenticationModule”,默认情况下)。

如果您正在研究滑动 session ,Vittorio 的这篇博客文章非常好:http://blogs.msdn.com/b/vbertocci/archive/2010/06/16/warning-sliding-sessions-are-closer-than-they-appear.aspx

关于events - 如何处理 Global.asax 中的 SessionSecurityTokenReceived 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com