我正在尝试提出一种自定义的身份验证方法。也就是说,用户信息在表中,我自己在 API 中进行用户名和密码验证。
对于此解决方案,我尝试不使用 ASP.NET Identity。
在之前的项目中,我做了类似的事情,我将验证提供的密码,成功后,在响应 cookie 中返回 session GUID,然后客户端会将此 session GUID 与所有后续请求一起发送到 API。
通过操作过滤器,我将使用 GUID(以及发出请求的客户端的 IP)在表中查找,以查看 session 是否仍处于事件状态并与第一个创建 session 的 IP 相匹配地点。
这次我希望避免每次收到 API 请求时都必须在数据库中查找。
有没有办法在服务器内存中注册 GUID token 和其他信息?
我应该考虑哪种身份验证?
最佳答案
Is there any way to register the GUID tokens and other information, in memory on the server ?
这不是一个好的设计。主要是如果应用程序池回收或者应用程序崩溃,所有用户都必须重新登录。
您可能需要考虑使用 ASP.Net Web API 内置的基于 token 的身份验证。
如何
当您使用个人用户帐户创建 ASP.Net Web API 项目时,它会自动为您生成它。
Startup.Auth.cs 文件包含用于配置OAuth2 授权服务器的代码。
如果您不喜欢使用 ASP.Net Identity,您可以使用自己的代码修改 ApplicationOAuthProvider。
关于c# - Web API 2 自定义身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34549883/