繁体   English   中英

将HttpResponseMessage与安全网址一起使用时,为什么会出现未经授权的401?

[英]Why am I getting a 401 unauthorized when using HttpResponseMessage with a secure url?

我有正在工作的专有代码。 我正在为此编写测试用例,因为代码已更改且测试用例现已损坏。 这是一个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,然后引发异常,不允许我的测试通过当我尝试使用非https的http://www.google.com进行相同操作时,它给出了200。那么安全问题正在发生

我需要做什么才能获得200的https? 是否需要用户名和密码凭证或某种或其他某种形式的令牌?

另外,当我使用Rest Client DHC和上面失败的安全https链接测试它时,得到200。但是,我必须刷新承载令牌才能得到200。如果我使用旧令牌,它将给出401。

此外,当我测试不同的链接(例如https://www.facebook.com (这不是我要在我的应用程序中测试的链接,只是故障排除))是安全的时,在上面的应用程序中都可以给我200甚至带有旧的承载令牌的Rest Client DHC。

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

查看此链接:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM