gpt4 book ai didi

asp.net-web-api - 使用 MVC FormsAuthentication 在 .NET Web API 中进行身份验证

转载 作者:行者123 更新时间:2023-12-03 21:42:43 27 4
gpt4 key购买 nike

我们有一个使用 AngularJS 框架的单页应用程序,它需要与在不同域上的 .NET Web API 中实现的 API 进行通信。

问题

API 在 .NET Web API 中实现。为了验证用户对我们 API 的访问权限,我们实现了 MVC 单页应用程序模板。这使用 FormsAuthentication 授予对 API 的访问权限。

我们使用 Fiddler 进行调试。当我们访问 API 上需要直接在浏览器中进行身份验证的 Controller 时,我们可以确认用户确实已通过身份验证。当我们执行 XMLHttpRequest 时,正如所怀疑的那样,没有在 header 中发送身份验证 cookie。

我们想要完成的是使用 FormsAuthentication 来访问 .NET Web API,希望通过 XMLHttpRequests。

一个提议的解决方案是在 .NET Web API 和 MVC 之间共享 session 。我们如何轻松地维护 .NET Web API 和项目的 MVC 部分之间的状态?

我们知道,它不是很 RESTful,但我们需要一个快速解决这个问题的方法。

附注! FormsAuthentication 通过使用 [Authorize] 属性与 .NET Web API Controller 一起使用。只是 Controller 不能被 XMLHttpRequests 访问。

使用 XMLHttpRequest 时 fiddler 的屏幕截图

XmlHttpRequest

直接在浏览器中完成请求时 fiddler 的屏幕截图
Directly in the browser

要测试的身份验证 Controller 的屏幕截图
Authentication controller

最佳答案

这是一个 CORS要求。
您可以使用 Microsoft.AspNet.WebApi.Cors 库。

只需要在 webapi config 添加一行在 ASP.NET WEB API 中使用 CORS:

config.EnableCors("*","*","*");

View this for detail .

关于asp.net-web-api - 使用 MVC FormsAuthentication 在 .NET Web API 中进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15902409/

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