2

我需要创建可以从不同平台(WEB、WPF、Mobile)访问的 API 应用程序。API 将托管在 Azure 上,客户端将是不同的网站和桌面/移动应用程序。API 需要知道用户名才能返回用户特定的信息

我现在在身份验证方面遇到了一些问题。我从这个线程中使用了如何对 API 进行表单身份验证的想法,但是那里有一个问题,我必须对 API 的每个请求进行身份验证,因为我在上一个请求中创建的 cookie 没有存储到下一个请求。

我正在考虑在那里创建一些自定义解决方案:当使用用户名/密码发送的对 API 的登录请求返回某种令牌时,我将存储在客户端上并随每个请求一起传递。在这种情况下,我可以覆盖 AuthorizeAttribute 并验证令牌。但我不相信我应该创建自定义解决方案,而是更愿意找到一种方法来使用微软为我做的事情。

从不同平台对 WEB API 进行身份验证的最佳方式是什么?如果我要返回令牌,创建它、编码它、过期它的最佳方法是什么……?

4

1 回答 1

0

据我所知,目前没有任何现成可用的东西。有了 OWIN,就会有一些事情发生。您可以查看 Katana 源代码 (Microsoft.Owin.Security)。对于 JSON Web 令牌,Microsoft 有 JSON Web 令牌处理程序。更多信息在这里。JSON Web Token Handler 可以创建和验证 JWT。您可以使用相同的库分别从令牌颁发者和 Web API 颁发和验证 JWT。创建所有这些基础设施并不容易。Thinktecture 身份服务器和身份模型可以让您更轻松地完成这些任务。两者都是开源的,您可以查看 github 中的源代码。看看这个这个。另一个很好的资源是 Dominick 的博客

于 2013-07-29T04:23:11.547 回答