2014-02-18 23 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調用中手動設置區域。