繁体   English   中英

ASP .NET Core 3.1 API 重定向到 prod 环境中的登录页面

[英]ASP .NET Core 3.1 API redirects to login page in prod environment

我创建了一个使用 MVC 的 ASP .NET Core 3.1 网站(至少据我所知)。 除了登录页面,我还使用 cookie auth 来限制访问。 其中一个控制器有一个用[HttpPost][AllowAnonymous]属性装饰的动作。 在我的计算机上运行网站时一切正常,但是当我将其部署到我的产品服务器(服务器 2016 + IIS)并使用 Postman 发布到操作时,我被重定向到登录页面并返回登录页面的 HTML . 网站的rest,登录等工作正常。 这只是我遇到问题的 API。

我还尝试使用 Visual Studio 的模板创建一个全新的 controller,但结果是一样的。 从 controller 中删除[Authorize]属性也没有改变这种情况。

有人知道为什么会这样吗? 让我知道是否缺少您可能需要的任何信息。

我的 controller(简体)

[Authorize]
public class ApplicationController : Controller
{
...
    public async Task<IActionResult> Index([FromQuery] string searchTerms, [FromQuery] bool updateDb)
    {
        ...
        return View(vm);
    }

    [AllowAnonymous]
    [HttpPost]
    public string PostAction([FromBody] object postBody)
    {
        //Process data (JSON)
        return "SomeProcessedDataString";
    }
...
}

startup.cs中的 Cookie 身份验证内容

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddAuthentication("myCookieScheme")
                .AddCookie("myCookieScheme", (CookieAuthenticationOptions config) =>
                {
                    config.Cookie.Name = "myLoginCookie";
                    config.LoginPath = "/Home/Login";
                });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            ...

            app.UseAuthentication();

            app.UseAuthorization();

            ...

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");

                endpoints.MapControllers();
            });

谢谢你。

我设法自己解决了这个问题。 由于 prod 服务器上的文件系统权限设置,POST 操作出错,然后导致 ASP.NET 内核重定向到登录页面。 希望这对将来的其他人有所帮助。

暂无
暂无

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

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