gpt4 book ai didi

asp.net-web-api - owin cors或web api cors

转载 作者:行者123 更新时间:2023-12-03 12:59:58 24 4
gpt4 key购买 nike

关于Web-api上的CORS,有100多个问题,关于如何启用CORS,每个人都提供不同的答案。我很困惑,不知道哪个答案是正确的。问题是没有答案实际上是明智地解释了每一行代码的作用的,因此我可以理解和解决我的问题,而不是复制粘贴代码。

无论如何,问题是:我使用owin使用asp.net Web API 2。而且我需要启用CORS。我该怎么做?有OWIN的cors设置

  application.UseCors(CorsOptions.AllowAll);

而且有asp.net Web API的cors设置
   var cors = new EnableCorsAttribute("*", "*", "*", "*");
config.EnableCors(cors);

如果我没有使用OAUTH,我应该使用哪一个(我之所以指定,是因为当我们不使用OAUTH v / s时,关于SO的答案有所不同)。

我是否需要为OWIN和WEB-API或仅对其中之一启用CORS。如果两者都启用,则存在问题 read here

如果有人可以解释我之间的区别,那将非常有帮助
  • OWIN CORS
  • WEB API CORS
  • 使用OWIN / WEBAPI的OAUTH的
  • CORS

  • 也有针对owin托管的Web api的自托管Web api的答案,这进一步增加了混淆:(,抱歉

    最佳答案

    有一种解决方法。由于OWIN和ASP.NET.CORS库是同时工作的。需要将Owin token 或身份验证方法配置为与所有其他API Controller 分开启用CORS。

    首先,不要在Startup.cs中将cors与Owin一起使用:

    public void Configuration(IAppBuilder app)
    {
    //app.UseCors(CorsOptions.AllowAll);

    查找GrantResourceOwnerCredentials方法,然后将Access-Control-Allow-Origin添加到上下文中,以便在身份验证完成后返回调用时,浏览器将找到 header 并接受它。
    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
    context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "http://localhost" });

    现在,将Nuget的Microsoft.AspNet.WebApi.Cors包安装到您的webapi项目中,并将其添加到Register方法
    public static void Register(HttpConfiguration config)
    {
    var cors = new EnableCorsAttribute("http://localhost, ", "accept,accesstoken,authorization,cache-control,pragma,content-type,origin", "GET,PUT,POST,DELETE,TRACE,HEAD,OPTIONS");

    config.EnableCors(cors);

    为我工作。

    关于asp.net-web-api - owin cors或web api cors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27309380/

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