c# - Web API 2 自定义身份验证

标签 c# .net authentication asp.net-web-api

我正在尝试提出一种自定义的身份验证方法。也就是说,用户信息在表中,我自己在 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/

相关文章:

c# - HTTP 407(需要代理身份验证)

authentication - SSL 的优势值得你费心费力吗?

c# - 使用 LINQ 从 XML 文件中删除所有节点的问题

c# - 如何获取 LINQPad 到 Dump() System.__ComObject 引用?

c# - 使用 Aspose 在 .NET 中将 Excel、PowerPoint、PDF 和 Word 转换为图像

.net - 从 C# 客户端调用远程 COM+ 服务组件

c# - 不要在选中的子项上关闭 ToolStripDropDownButton

c# - uwp 应用程序(.net native )和未处理的异常

C# 如何创建没有类定义的对象?

android - Web 服务 Http 身份验证 - Android 上的 KSOAP2