asp.net-mvc - 具有长期有效期的 OpenId ASP MVC 身份验证

标签 asp.net-mvc authentication openid forms-authentication dotnetopenauth

Stackoverflow 与许多其他网站一样使用 OpenId。但是,我很少需要向 Stackoverflow 提供我的 OpenId,而对于其他启用 OpenId 的网站,我必须每天或每周执行一次。

这对我来说意味着 session 的过期是由网站而不是 OpenId 提供商决定的。

查看 ASP MVC 中的 DotNetOpenId 代码,我可以看到,在 OpenId 提供程序成功进行身份验证后,将使用标识符和 bool 参数调用 FormsAuthentication.SetAuthCookie 来确定是否应保留 cookie。

如何强制此 Cookie 过期(比如在 2020 年)而不是默认值。

最佳答案

来自MSDN - Explained: Forms Authentication in ASP.NET 2.0 :

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
    "userName",
    DateTime.Now,
    new DateTime(2020, 01, 01), // value of time out property
    false, // Value of IsPersistent property
    String.Empty,
    FormsAuthentication.FormsCookiePath);

string encryptedTicket = FormsAuthentication.Encrypt(ticket);

HttpCookie authCookie = new HttpCookie(
                        FormsAuthentication.FormsCookieName, 
                        encryptedTicket);

authCookie.Secure = true;

Response.Cookies.Add(authCookie);

关于asp.net-mvc - 具有长期有效期的 OpenId ASP MVC 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230922/

相关文章:

session - Laravel 多域 session

openid - google帐户注销并重定向

c# - 在 Lambda 表达式中为 Model 属性使用动态值

c# - ASP.NET MVC Controller 发布方法单元测试 : ModelState. IsValid 始终为真

c# - 输入字符串的格式不正确

asp.net-mvc - 在 Visual Studio 2013 中使用 AngularJS Material 设计

linux - 了解尝试登录的用户的用户名

swift - 将 Face ID 生物特征认证限制为 3

PHP OpenID Connect 提供程序实现

jwt - Keycloak 返回已经过期的 token