为什么我在使用带有安全URL的HttpResponseMessage时会获得401未授权?

问题描述 投票:2回答:1

我有这个专有代码,我正在为我的工作而努力。我正在为它编写测试用例,因为代码已经更改,测试用例现在已经破坏了。它是一个C#web Api MVC .Net Framework应用程序

我有一个方法,我输入一个字符串url然后这个代码执行

HttpResponseMessage response = await Client.GetAsync(url).ConfigureAwait(true);
System.Uri uri = new System.Uri(url); // convert string to Uri
var cert = System.Net.ServicePointManager.FindServicePoint(uri).Certificate;
response.EnsureSuccessStatusCode();

当它到达response.EnsureSuccessStatusCode()时,它会给401一个未经授权的,然后抛出一个异常,不允许我的测试通过当我用http://www.google.com尝试同样的东西,这不是一个https,然后它给了200.所以有一些东西正在进行安全的东西

为了获得200分,我需要做些什么?它是否需要用户名和密码凭据或某种或某种其他令牌?

此外,当我使用Rest Client DHC测试它时,安全的https链接失败了,它给了我200.但是,我必须刷新持有者令牌才能得到200.如果我使用旧令牌,它会给一个401。

进一步说,当我测试一个不同的链接,如https://www.facebook.com(我不想在我的应用程序中测试,只是故障排除)这是安全的,它的工作给我200我的应用程序上面和Rest客户端DHC即使有一个旧持票人令牌。

c# asp.net-mvc asp.net-web-api
1个回答
0
投票

如果您尝试向Web API发出CORS请求,则需要将其配置为接受跨源请求。如果您没有将web api配置为接受跨源请求,则在调用它时会抛出这些类型的错误。请记住,对于web api访问,https://www.domain.sohttp://www.domain.so是完全不同的客户端。

看看这个链接:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

© www.soinside.com 2019 - 2024. All rights reserved.