为“自动登录”链接生成访问令牌

时间:2015-05-12 11:57:42

标签: c# asp.net asp.net-mvc asp.net-mvc-5 asp.net-identity-2

我的ASP.NET MVC项目中有一个页面,用户只需按一个链接即可访问(无需登录)。我想我应该基于username / userId生成某种访问令牌,但我不确定如何。所有其他页面都必须进行完全身份验证(通过登录)。

点击此http://example.com/specialpage?accesstoken={accesstoken}之类的链接,无需登录即可将其转到页面。

控制器应解密令牌,获取用户名并根据用户的不同呈现视图。

我知道它不是100%安全的,但至少不能通过知道用户名来猜测令牌。

做这样的事情的最佳方法是什么?我正在使用ASP.NET MVC 5和Identity 2.

1 个答案:

答案 0 :(得分:2)

令牌可以是任何内容,它不一定需要包含任何敏感信息,例如用户名。

令牌通过服务器如何记住它来工作,因此在这种情况下,您的令牌可能只是GUID,然后在服务器端映射到已知帐户。这种方法的好处是:

  • 没有敏感信息分发给客户
  • 您可以从服务器控制到期时间/撤销流氓令牌
  • Almost impossible为您生成重复令牌