使用DotNetOpenAuth验证JavaScript OAuthSimple查询字符串

时间:2011-08-12 18:30:02

标签: oauth dotnetopenauth

我正在开发一个项目,它将使用HTTPS和内部应用程序在JavaScript中生成OAuth查询字符串,因此此时安全性并不是主要关注点(我预先提到了这一点)

JavaScript查询字符串用于在不同的服务器和域上调用C#脚本,主要是将数据从内部应用程序传递到C#应用程序,并允许验证a)查询来自正确的源,以及b )查询有效且尚未过期等。

OAuthSimple为我提供了一个这样的签名网址: http://www.myremotesite.com/mycodepath/mycodefile.aspx?firstname=Kevin&lastname=Blount&oauth_consumer_key=ThisIsTheConsumerKey&oauth_nonce=nuOoM&oauth_signature=DAoaSxD5SvVFTTDNSxiTbANzGlc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1313162452

我的问题是,C#方面的一个问题......接下来我该怎么办?我有两个想法,但我无法解决我需要探索的问题:

  1. 使用C#生成一个新签名的URL并比较两者(或只是比较oauth_signature值)
  2. 获取查询字符串并以某种方式解密/解码并验证它。
  3. 我被告知DotNetOpenAuth是使用的标准,但我无法弄清楚我的下一步使用它。

    我可以就我需要研究的内容或解释我应该如何进行的文章获得一些建议吗?

1 个答案:

答案 0 :(得分:1)

阅读DotNetOpenAuth上的说明并确保您理解它。我之前没有使用它,但听说过它很好。

oAuth服务器将执行以下几个步骤:

  1. 验证版本 - 客户端是否使用正确版本的oAuth来处理
  2. 验证TimeStamp - 所有时间戳必须采用UTC格式以避免出现时区问题
  3. 验证Nonce - 是否已使用以前允许的时间范围
  4. 验证签名 - 从使用者密钥中获取私钥,使用参数中传递的值计算签名并与实际签名进行比较。
  5. 一旦消息通过了所有检查,服务器将返回消息所请求的资源