wcf - 如何为 WCF REST C# 站点设置 oAuth 身份验证

标签 wcf rest oauth

我正在使用来自 VS 2010 在线模板的 WCF REST 服务模板 40(CS) 创建一个站点。它工作得很好,但我需要保护它。

我需要支持 windows、linux 和 iPhone 应用程序,因此 REST + oAuth 似乎是一个不错的解决方案,但我不知道从哪里开始。

基本上,我需要像传统表单例份验证一样将用户名/密码(当然是散列)解析到我的数据库。

最佳答案

OAuth 不传输用户名/密码。 OAuth 在 HTTP Auth header 内发送 OAuth header 。您的服务需要将其提取出来,然后对其进行测试以确保其有效。

OAuth header 中会有一堆未加密的值(时间戳、consumer_key、nonce)。您可以使用这些未加密的值并使用未加密的 key 查找您的服务将用于加密这些相同值的 key ,并确保它与 OAuth header 中包含的签名相匹配。如果您生成的签名与 OAuth header 中包含的签名匹配,那么您就知道 HTTP 请求是好的。然后,您可以从 header 中取出使用者 key ,并在需要时使用它来查找用户名。

my post here .请记住,有几个很好的库可以使这一切变得更容易,例如 DotNetOpenAuth .

关于wcf - 如何为 WCF REST C# 站点设置 oAuth 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4686451/

相关文章:

node.js - OAuth 流重定向到 "Unauthorized"页面

android - oAuth 1.0 获取请求改造 android

c# - 是否可以使用 Mono 的 XSP Web 服务器托管 WCF 服务?

c# - 让 WSHttpBinding 通过 http 代理工作

wcf - f#中长时间运行的代理

java - Spring Boot调用rest ws SocketTimeoutException连接超时

Angular 10 - 检测图像是否仅存在于客户端,否则为默认图像

c# - 可以发送到 WCF 服务的数据量是否有大小限制?

java - Spring Controller 将字符集添加到图像返回方法的内容类型 header

android - 如何在 Android 中获取 Facebook OAuth 授权码