簡體   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