使用伦敦帐户使用openstack.net API云文件进行身份验证

时间:2014-02-18 13:26:13

标签: c# openstack rackspace-cloud

当我使用时:

            CloudIdentity identity =
            new CloudIdentity()
            {
                Username = "files.user",
                APIKey = "pswd",
            };
            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。我想这个例子已经过时了。

如何使用Domain参数?或者有更好的方法来验证LON云实例吗?

2 个答案:

答案 0 :(得分:1)

Rackspace现在使用全局身份验证,因此美国和英国帐户之间的唯一区别是您传入的凭据。如果身份验证失败,则可能出现以下问题之一:

  1. CloudIdentity实例的用户名和/或API密钥不正确。
  2. 在您尝试进行身份验证的特定时刻,身份服务遇到了某种中断。
  3. 身份验证正在成功,但发生了另一个错误,您已将其归因于身份验证失败(您未提供任何异常详细信息,因此我无法对其进行排除)。

答案 1 :(得分:0)

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

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