gpt4 book ai didi

asp.net-mvc - 从 MVC Controller 调用 Web API(cookie 身份验证)

转载 作者:行者123 更新时间:2023-12-05 00:18:36 26 4
gpt4 key购买 nike

我在同一个项目上有一个 Web Api 和 Mvc 5。
该 Web Api 受不记名 token 保护(但我评论了 SuppressDefaultHostAuthentication 行,因此当我使用 cookie mvc 进行身份验证时,我可以从浏览器访问该 api)

现在我正在尝试从 mvc Controller 访问 api 而不发送 token ,是否可以关闭 SuppressDefaultHostAuthentication?

尝试没有成功(401错误):

HttpClientHandler handler = new HttpClientHandler()
{
PreAuthenticate = true,
UseDefaultCredentials = true
};

using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://localhost:11374/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var response = client.GetAsync("api/MyApi").Result;
if (response.IsSuccessStatusCode)
{ }
}

如果不可能,那么处理该问题的最佳方法是什么?

最佳答案

WebApi 遵循 REST,其中规定请求是无状态的。这意味着对于 WebApi 或任何与 REST 兼容的 API,没有任何概念,例如 cookie、 session 等。对 API 的每个请求都必须包含为请求提供服务所需的所有信息。因此,如果您有一个需要身份验证的端点,您必须对请求进行身份验证才能访问它。时期。如果您通过不记名 token 进行身份验证,则必须传递不记名 token 。

关于asp.net-mvc - 从 MVC Controller 调用 Web API(cookie 身份验证),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37664797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com