首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openstack授权

Openstack授权
EN

Stack Overflow用户
提问于 2016-08-29 07:40:56
回答 1查看 142关注 0票数 0

大家好,

我想用C#中的以下代码列出openstack中的所有图像:

代码语言:javascript
复制
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using net.openstack.Providers.Rackspace;
using net.openstack.Core.Domain;
using net.openstack.Core.Providers;
namespace RepositoriesTests
{
    [TestClass]
    public class RackspaceTests
    {
        public string username = "mbar";
        public string password = "password";
        public string url = "http://192.168.5.55:5001/v3";
        public string project_id = "a9b2b59f093f44d881b8ebccbba00901";
        public string project_name = "test-nsix";
    [TestMethod]
    public void TestConnection()
    {
        try
        {
            var identity = new CloudIdentityWithProject()
            {
                Username = username,
                Password = password,
                ProjectId = new ProjectId(project_id),
                ProjectName = project_name
            };
            var identityProvider = new OpenStackIdentityProvider(new Uri(url));


            var serverProvider = new CloudServersProvider(identity, identityProvider);

            var images = serverProvider.ListImages(region: "RegionOne");
        }catch(Exception ex)
        {
            Assert.Fail(ex.Message);
        }
    }

}
}

当我运行这个示例时,我收到了以下错误:,您提出的请求需要身份验证。我在浏览器窗口中签入了从url:http://192.168.5.55:5001/v3获得的内容,并看到服务器存在:

代码语言:javascript
复制
{"version": {"status": "stable", "updated": "2016-04-04T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.6", "links": [{"href": "http://192.168.5.55:5001/v3/", "rel": "self"}]}}

我不知道问题出在哪里,为什么我不能授权。

这是堆栈跟踪:

代码语言:javascript
复制
   w net.openstack.Providers.Rackspace.Validators.HttpResponseCodeValidator.Validate(Response response) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\Validators\HttpResponseCodeValidator.cs:wiersz 48
   w net.openstack.Providers.Rackspace.ProviderBase`1.CheckResponse(Response response) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\ProviderBase`1.cs:wiersz 861
   w net.openstack.Providers.Rackspace.ProviderBase`1.ExecuteRESTRequest[T](CloudIdentity identity, Uri absoluteUri, HttpMethod method, Object body, Dictionary`2 queryStringParameter, Dictionary`2 headers, Boolean isRetry, Boolean isTokenRequest, RequestSettings requestSettings, Func`7 callback) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\ProviderBase`1.cs:wiersz 505
   w net.openstack.Providers.Rackspace.ProviderBase`1.ExecuteRESTRequest[T](CloudIdentity identity, Uri absoluteUri, HttpMethod method, Object body, Dictionary`2 queryStringParameter, Dictionary`2 headers, Boolean isRetry, Boolean isTokenRequest, RequestSettings settings) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\ProviderBase`1.cs:wiersz 294
   w net.openstack.Core.Providers.OpenStackIdentityProvider.<>c__DisplayClass4_0.<GetUserAccess>b__0() w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Providers\OpenStackIdentityProvider.cs:wiersz 108
   w net.openstack.Core.Caching.UserAccessCache.<>c__DisplayClass2_0.<Get>b__0(String k) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Caching\UserAccessCache.cs:wiersz 58
   w System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(TKey key, Func`2 addValueFactory, Func`3 updateValueFactory)
   w net.openstack.Core.Caching.UserAccessCache.Get(String key, Func`1 refreshCallback, Boolean forceCacheRefresh) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Caching\UserAccessCache.cs:wiersz 58
   w net.openstack.Core.Providers.OpenStackIdentityProvider.GetUserAccess(CloudIdentity identity, Boolean forceCacheRefresh) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Providers\OpenStackIdentityProvider.cs:wiersz 123
   w net.openstack.Providers.Rackspace.CloudIdentityProvider.Authenticate(CloudIdentity identity) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\CloudIdentityProvider.cs:wiersz 948
   w RepositoriesTests.RackspaceTests.TestConnection() w D:\Projekty\NSIX\RepositoriesTests\RackspaceTests.cs:wiersz 35
EN

回答 1

Stack Overflow用户

发布于 2016-08-29 07:56:58

将identityProvider对象传递给CloudIdentityWithProject对象:

代码语言:javascript
复制
var identityProvider = new OpenStackIdentityProvider(new Uri(url), projectCloudId);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39200924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档