2014-02-18 22 views
0

当我使用:身份验证使用伦敦openstack.net API的云文件占

  CloudIdentity identity = 
      new CloudIdentity() 
      { 
       Username = "btctrader.files.user", 
       APIKey = "74d7c2d97b6441b79a403b5796d65137", 
      }; 
      var _storage = new CloudFilesProvider(identity); 

认证失败。我认为问题是我有一个LON帐户,默认的认证目标是美国云实例。在openstack.net wiki上,我看到了下面的例子。

IIdentityProvider identityProvider = new CloudIdentityProvider(); 
var userAccess = identityProvider.Authenticate(new RackspaceCloudIdentity{ 
                Username = "MyUserName", 
                Password = "MyPassword", 
                CloudInstance =CloudInstance.UK}); 

在最新版本的库中,RackspaceCloudIdentity具有Domain参数,而不是CloudInstance。我想这个例子已经过时了。

如何使用域参数?或者有没有更好的方式来使用LON云实例进行身份验证?

回答

1

Rackspace公司现在使用的全球认证,所以美国和英国账户之间唯一的区别是你在凭据传递如果验证失败,则下列条件之一为可能的问题:

  1. 您的用户名和/或CloudIdentity实例的API密钥不正确。
  2. 身份服务在您尝试进行身份验证的特定时刻出现某种中断。
  3. 身份验证成功,但发生了另一个您认为身份验证失败的错误(您没有提供任何例外详细信息,因此我无法排除此情况)。
+0

嗨。我发现了这个问题。这是关于我正在使用的用户帐户。我创建了这个帐户只是为了访问云文件。我可以在用户管理面板上看到该用户有权对“文件”产品“查看,创建,编辑,删除”。但是,当我尝试在代码中验证此用户时,我收到以下异常:“用户无权访问所请求的服务或区域”。我尝试与我的主要用户相同的代码,它的工作原理。有什么建议么? –

0

我一直在看到同样的错误。我相信这与通过用户界面创建的子帐户有关。它们没有正确设置的DefaultRegion(它为空)。

解决此问题的唯一方法是使用父帐户,或者在每个API调用中手动设置区域。