Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AutoRest需要构造函数中的ServiceClientCredentials,但我可以';t在不实例化客户机对象的情况下获取该数据_C#_Swagger_Bearer Token_Autorest - Fatal编程技术网

C# AutoRest需要构造函数中的ServiceClientCredentials,但我可以';t在不实例化客户机对象的情况下获取该数据

C# AutoRest需要构造函数中的ServiceClientCredentials,但我可以';t在不实例化客户机对象的情况下获取该数据,c#,swagger,bearer-token,autorest,C#,Swagger,Bearer Token,Autorest,我使用AutoRest生成了一个API客户端,并使用--add credentials参数,以便传入一个承载令牌。为了获得令牌,我需要能够实例化对象并调用我的登录方法,如下所示: var client = new IOIWebAPI(new Uri("https://localhost:44325", UriKind.Absolute)); var loginResult = client.Login(authModel); 问题是每个构造函数都需要ServiceClientCredentia

我使用AutoRest生成了一个API客户端,并使用
--add credentials
参数,以便传入一个承载令牌。为了获得令牌,我需要能够实例化对象并调用我的登录方法,如下所示:

var client = new IOIWebAPI(new Uri("https://localhost:44325", UriKind.Absolute));
var loginResult = client.Login(authModel);
问题是每个构造函数都需要
ServiceClientCredentials
。据我所知,我需要创建一个
TokenCredentials
实例,其中包括令牌字符串。但是我不能这样做,因为我无法在不调用Login的情况下获取令牌字符串。我不能在没有令牌字符串的情况下调用Login


我肯定我只是误解了如何使用API客户端。但是关于我这里做错了什么有什么想法吗?

我最好的猜测是,
--add credentials
不支持未经身份验证的端点。当您添加cred时,AutoRest假设所有内容都需要auth。我为此提交了一份报告,但我怀疑它不会很快得到解决

我的解决方法是创建一个
TokenHelper
类。我将从登录端点生成的自动测试代码复制并粘贴到该类中。因此代码保持一致,但这并不理想,因为如果端点发生变化,我可能会忘记更新它

var tokenHelper = new TokenHelper(baseUri);
var tokenResult = tokenHelper.GetTokenAsync(authModel).GetAwaiter().GetResult();

var token = new TokenCredentials(tokenResult.AccessToken, "Bearer");
var client = new IOIWebAPI(baseUri, token);