具有自定义用户数据库的Web API令牌身份验证

dji*_*kay 64 c# authentication access-token asp.net-web-api

我正在开发一个Web API 2.1服务,需要验证连接客户端(我将创建和控制的HTML5/JS客户端).不幸的是,用户信息(用户名,密码哈希,角色和更多信息)存储在我只有读访问权限的现有(SQL Server)数据库中.Users数据库表是在5 - 6年前创建的,没有任何安全框架参考,因此它是一个完全自定义的格式.我不允许对数据或数据库结构进行任何更改.

本文的启发下,我推出了自己的基于令牌的用户身份验证方法,但我缺乏使用已建立的安全框架的完整性和(重新)保证.

考虑到我上面提到的限制,有没有办法在现有项目中集成现有框架,例如OAuth2?我不知道它是否有任何区别,但我是使用OWIN进行自托管.

编辑:我不知道为什么有几个人贬低了这个问题 - 它真的那么糟糕吗?就我而言,这是一个真正的问题,我希望得到一个答案(即使它是" 不,你不能这样做因为...... ").如果这些人可以在评论中解释他们的理由,那将不胜感激.

sil*_*ter 19

对于类似的问题,这是一个很好的答案.它基本上说:

  • 创建一个实现的自定义用户类 IUser
  • 定义实现的自定义用户存储 public class UserStoreService : IUserStore<CustomUser>, IUserPasswordStore<CustomUser>
  • 把一切都搞定了

由于答案非常广泛,我只提供了基本步骤...详细信息如下:如何在asp.net web api 2中自定义对我自己的表集的身份验证?

这也是一个非常有价值的内容,也适用于web api:

通过JumpStart自定义ASP.NET身份验证

https://channel9.msdn.com/Series/Customizing-ASPNET-Authentication-with-Identity

HTH

  • YouTube视频链接已失效. (4认同)
  • 在channel9上找到了链接并编辑了帖子 (3认同)