假设您有一个用于基于用户的应用程序的 .net Web API 服务器。用户使用发送到服务器的用户名和密码登录应用程序,然后应用程序会返回一个访问 token 。
现在该应用程序想要显示用户信息(存储在服务器上的数据库中)。因此,它向服务器发出 http 请求,并在 header 中包含访问 token 。
您如何限制服务器只会将特定用户的相关信息发送回应用程序,而不会将其他人的信息发送回应用程序。
有没有办法,当我收到他们的用户名和密码并创建要发送回的 token 时,将他们的 userId 与该 token 相关联?因此,现在当我收到对/GetUserFoodPreferences 之类的请求时,我可以从 token 中获取 userId 并根据该 ID 查询我的数据库。
这是正确的方法吗?
最佳答案
将用户 ID 或连接到该用户的其他类型的 ID 存储在 cookie 中将是最常见的方式。然后,您可以检查该 cookie (Request.Cookies["name"];) 的 id 以确认用户。
编辑:当然,如果您正在使用 API Controller 并正确验证您的用户,您可以使用:
HttpContext.Current.User.Identity.GetUserId();
注意:不要忘记
import Microsoft.AspNet.Identity
图书馆。
关于authentication - .net 网络 API。如何从访问 token 中检索用户属性(用户 ID)?基于当前用户/ token 的请求处理程序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736193/