作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用来自 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/
我是一名优秀的程序员,十分优秀!