0

我将在 .Net 中构建一个 Web 服务。此网络服务将用于 winform 应用程序、Web 应用程序和移动应用程序。

我想使用令牌保护此 Web 服务。

当用户登录 Web 服务时,系统将在成功登录时生成唯一令牌并存储在数据库中。应用程序应为 Web 服务中的每个方法传递此令牌。我的数据库验证此令牌并向最终用户发送响应。

现在这种架构的问题是,每次成功登录都会更改令牌,并且如果另一个使用相同凭据的登录会停止以前的成功登录。我希望允许使用相同凭据进行多次登录。

请建议我解决这个问题的好方法。

谢谢

4

1 回答 1

0

在我脑海中弹出的第一件事是检查您的数据库中是否存在现有令牌,然后如果已经生成了一个,您应该返回它。但我不知道这有多好。ASP.NET Identity 通过 OAuth2 协议工作,这有点类似。

使用用户凭据登录,无论哪种设备正在创建访问令牌,它具有过期时间。如果您在此令牌仍然有效时尝试登录,您始终会获得该令牌。

我的建议是使用提供的身份并扩展它。如果您先编写代码,则可以扩展 IdentityUser,添加一些额外的属性并创建应用程序所需的所有表。以下是一些有用的链接:

OAuth2官方页面

使用 ASP.NET Web API 2、Owin 和 Identity 的基于令牌的身份验证

我希望我有所帮助

于 2015-09-28T12:26:27.233 回答