Asp.net mvc MVC使用登录凭据访问外部Web API

Asp.net mvc MVC使用登录凭据访问外部Web API,asp.net-mvc,asp.net-web-api,login,credentials,Asp.net Mvc,Asp.net Web Api,Login,Credentials,需要一些帮助来访问外部Web API并传递凭据,以便访问可用的方法。我在下面包含了我用来尝试访问Web API的代码。但是,每次尝试访问时,我都会收到以下错误: “基础连接已关闭:无法为SSL/TLS安全通道建立信任关系。” 我错过了什么或者我做错了什么?我已经围绕这个问题转了几天,尝试了几种不同的技术,但仍然会出现同样的错误。这里是我使用的一种技术 private static async Task<string> GetAPIToken(string userName, str

需要一些帮助来访问外部Web API并传递凭据,以便访问可用的方法。我在下面包含了我用来尝试访问Web API的代码。但是,每次尝试访问时,我都会收到以下错误:

“基础连接已关闭:无法为SSL/TLS安全通道建立信任关系。”

我错过了什么或者我做错了什么?我已经围绕这个问题转了几天,尝试了几种不同的技术,但仍然会出现同样的错误。这里是我使用的一种技术

 private static async Task<string> GetAPIToken(string userName, string password, string apiBaseUri)
    {
        try
        {
            using (var client = new HttpClient())
            {
                //setup client
                client.BaseAddress = new Uri(apiBaseUri);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                //setup login data
                var formContent = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair<string,string>("username",userName),
                new KeyValuePair<string,string>("password",password),
            });

                //send request
                HttpResponseMessage responseMessage = await client.PostAsync("Token", formContent);

                //get access token from response body
                var responseJson = await responseMessage.Content.ReadAsStringAsync();
                var jobject = JObject.Parse(responseJson);
                return jobject.GetValue("access_token").ToString();
            }
        }
        catch (Exception ex)
        {
            return null;
        }
    }
private静态异步任务GetAPIToken(字符串用户名、字符串密码、字符串apiBaseUri)
{
尝试
{
使用(var client=new HttpClient())
{
//安装客户端
client.BaseAddress=新Uri(apiBaseUri);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
//设置登录数据
var formContent=new FormUrlEncodedContent(new[]
{
新的KeyValuePair(“用户名”,用户名),
新的KeyValuePair(“密码”,password),
});
//发送请求
HttpResponseMessage responseMessage=Wait client.PostAsync(“令牌”,formContent);
//从响应主体获取访问令牌
var responseJson=await responseMessage.Content.ReadAsStringAsync();
var jobject=jobject.Parse(responseJson);
返回jobject.GetValue(“访问令牌”).ToString();
}
}
捕获(例外情况除外)
{
返回null;
}
}
任何帮助都将不胜感激


谢谢

使用HTTPS和HTTP时有一点不同。这个问题应该为您提供解决问题所需的信息


您的apiBaseUri是否以HTTPS开头?apiBaseUri是否以https://You 我们应该看看这个。非常感谢你指导我找到我一直在寻找的正确的职位。非常感谢。Alex我很高兴它帮助解决了你的问题。如果你愿意的话,我会把这个作为答案写进去。