自动登录到我们自己的OAuth应用程序

问题描述:

我们有一些带有OAuth的Web服务。自动登录到我们自己的OAuth应用程序

我需要针对它们运行一些测试,最好是在不使用浏览器的情况下在自动化环境中运行。

问题是登录。

,不使用浏览器,并使用DotNetOpenAuth和手动设置HttpContext.Current,我似乎能够做的一切,并得到一个请求令牌和验证(使用测试用户名和密码)。

我相信下一阶段是获得授权令牌。不幸的是,无论我如何构建请求,我都无法使其工作。

目前,使用WebConsumer(DotNetOpenAuth库),并调用consumer.ProcessUserAuthorization()导致错误:

DotNetOpenAuth.OAuth.Messages.AuthorizedTokenRequest消息:oauth_verifier

也许整个方法是错误的,所以任何帮助/建议都会有用。

谢谢。

最后,这是一个问题,没有正确存储cookie。

我在登录页面(用户输入用户名和密码的地方)和授权页面(用户表示可以与第三方共享详细信息)之间丢失cookie。第二页是做额外的检查,看看用户是否是他们所说的那些人(读取登录页面本应写入的cookie值)。

这不是一个真正的OAuth问题,只是我在授权页面中不理解的东西(它已经被删除 - 无论如何 - c'est la vie)。

然后,我对cookies的域名(当域名以'。'开头的时候)有问题。这篇文章让我:

CookieContainer bug?

我结束了从一个域复制到另一个区。

+0

我正在尝试做同样的事情 - 在没有浏览器的情况下为web服务中的oauth impl添加自动化测试代码。如果你可以分享一些代码,它会有所帮助。 – Sushil 2013-05-07 16:09:51

我建议您通过让Web服务的令牌管理器始终包含测试访问令牌和访问令牌密钥来跳过整个OAuth握手和授权步骤。然后,将测试连线至其令牌管理器中包含的令牌对,并在授权您的出站呼叫时始终使用该访问令牌。