在 C# Web api 上进行用户身份验证的最佳实践是啥?

Posted

技术标签:

【中文标题】在 C# Web api 上进行用户身份验证的最佳实践是啥?【英文标题】:What is the best practice for user authentication on a C# web api?在 C# Web api 上进行用户身份验证的最佳实践是什么? 【发布时间】:2013-04-29 09:59:25 【问题描述】:

我正在构建一个为某些应用程序提供数据的 Web API。

该场景类似于托管在 Server001 上的 Web api,具有可用的方法 GET / POST / PUT / Delete。

在 Server002 中是另一种技术的站点,例如 php,它将使用提供 API 的数据来呈现给您的用户。 Websites/ios/android/wp8 其他应用程序也可以从我的 webapi 获取数据(当然是权限 web api)。

所以我想为每个注册的应用程序生成密钥。每个 Get / Post 的 header 都会发送这个 key,这样我就知道一个应用程序是否被允许。

之后,我想一个用户如何才能登录?如果用户在 IOS APP 中通过 PHP 请求日志,我想知道并想向他展示。因为今天的 Gmail 就是这样。所以我需要管理应用程序以及每个用户的登录位置。我怎么能这样做?有现成的解决方案吗?

在 MemoryCache 上保存所有登录所有应用程序的用户是否正确?如果我同时连接成千上万的用户,恐怕会成为问题?

我在安全方面完全是新手,我不想现在做某事以在三个月后重做。

谢谢

【问题讨论】:

【参考方案1】:

我认为这对你有好处:OAuth(授权标准)。DotNetOpenAuth - .NET 的 OAuth 库。

【讨论】:

如果您有任何 DotNetOpenAuth 示例的链接,请告诉我。我会读到的:) 见这里:https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples

以上是关于在 C# Web api 上进行用户身份验证的最佳实践是啥?的主要内容,如果未能解决你的问题,请参考以下文章

支持基本、匿名和 Windows 身份验证的 Web 服务/API

.NET Core Web API 密钥

JWT 在未经身份验证的端点上进行 CSRF 保护?

无法在 Chargify REST API 上进行身份验证

C# SMTP 无法在 Outlook.com 端口 587 上进行身份验证。“服务器响应为:5.7.1 客户端未通过身份验证”

客户端是不是应该在每条路由上进行身份验证? [关闭]