我正在使用 VS 2010 在线模板的 WCF REST 服务模板 40(CS) 制作一个网站。它工作得很好,但我需要保护它。
我需要支持 Windows、Linux 和 iPhone 应用程序,因此 REST + oAuth 似乎是一个很好的解决方案,但我不知道从哪里开始。
基本上我需要将用户名/密码(当然是散列)解析到我的数据库,就像传统形式的身份验证一样。
OAuth 不传输用户名/密码。 OAuth 在 HTTP Auth 标头内发送 OAuth 标头。您的服务需要将其取出并进行测试以确保其有效。
OAuth 标头中将包含一堆未加密的值(时间戳、consumer_key、nonce)。您可以获取这些未加密的值,并使用未加密的密钥来查找您的服务将用于加密这些相同值的密钥,并确保它与 OAuth 标头中也包含的签名匹配。如果您生成的签名与 OAuth 标头中包含的签名匹配,则您知道 HTTP 请求是正确的。然后,您可以从标头中取出消费者密钥,并在需要时使用它来查找用户名。
See 我的帖子在这里 http://steverb.com/post/Fun-With-OAuth-e28093-Part-2.aspx。请记住,有几个很好的库可以使这一切变得更容易,例如DotNetOpenAuth http://www.dotnetopenauth.net/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)