通过传递令牌获取用户ID

时间:2017-01-12 22:14:27

标签: asp.net-mvc asp.net-identity

我正在尝试在新标签页中打开服务器生成的文件的URL,以便用户可以下载它,公共用户不应该可以访问此链接,只有经过身份验证的用户才能访问此文件。 我正在考虑将URL中的令牌作为查询参数传递给http://website.com/generate-file?token=passed-token

我的问题是,asp身份是否有任何api我可以通过访问令牌来获取用户ID或用户对象?

1 个答案:

答案 0 :(得分:0)

您正在寻找:

UserManager.GenerateUserTokenAsync("Generate file", userId);

这将为该特定目的("Generate file")为该用户生成一个令牌。稍后您可以验证令牌并验证用户:

UserManager.VerifyUserTokenAsync(userId, "Generate file", token);

但是,这要求您还将userID放在查询参数中,如果用户只能访问该链接,我将看不到这是一个大问题(可能会发送给用户的电子邮件?)。否则,没有办法单独从令牌获取用户ID。