首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET 4.5 SessionAuthenticationModule

.NET 4.5 SessionAuthenticationModule
EN

Stack Overflow用户
提问于 2013-03-05 21:23:58
回答 1查看 1.2K关注 0票数 0

我正在尝试使用SessionAuthenticationModule来创建令牌并将其写入cookies,而不是使用旧的FormAuthentication.SetAuthCookie。这是因为我还可以将声明添加到我的主体中,并在每次请求时都可以使用它们。

它在我自己的计算机上工作得很好,但是当我部署到服务器上时,我得到了这个错误:指定的参数超出了有效值的范围。参数名称: keyExpirationTime

来源: System.IdentityModel堆栈跟踪指向一个重载的构造函数-它似乎从我最初通过TokenHandler调用CreateSessionSecurityToken,然后通过几个构造函数。

我的SessionAuthenticationModule是我自己编写的一个类,但它派生自System.IdentityModel.Services.SessionAuthenticationModule并覆盖了OnPostAuthenticateRequest。

我为validFrom和validTo参数发送了DateTime.Now和DateTime.Now.AddMinutes(20) (另请注意,这可以是一个配置设置吗?如果是,在哪里?-显然我可以为会议记录设置一个AppSetting,但可能在某个地方有一个安全配置设置?)

我已经搜索了此错误消息,但找不到任何提及它的地方。

我使用过FederationAuthentication.SessionAuthenticationModule.CreateSessionSecurityToken,也尝试过HttpContext.Current.ApplicationInstance.Modules("SessionAuthenticationModule") --它们都能在我的开发机器上工作,但都不能在服务器上工作。

服务器安装了Windows2008 R2,我安装了Windows7专业版。两者都具有IIS 7.5.7600.16385。两者都使用dotNetFx45_Full_setup.exe v4.5.50709.17929安装了.NET 4.5。为了进行测试,我只是在默认网站下使用一个虚拟应用程序,它使用一个64位的应用程序池和一个集成的管道,两个应用程序池都在AppPoolIdentity下运行。

CreateSessionSecurityToken是从会话身份验证模块添加声明后执行的页面调用的。

它肯定是相当简单的东西,但我需要帮助弄清楚它是什么!会非常感谢你的帮助。

谢谢菲尔

EN

回答 1

Stack Overflow用户

发布于 2013-03-06 14:00:03

所有的样例都说“使用DateTime.UtcNow",你能试试吗?此外,还可以将null粘贴到ValidTo,以指定应通过将SessionSecurityTokenHandler.DefaultTokenLifetime属性的值与validFrom参数指定的时间相加来确定该值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15224945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档