簡體   English   中英

如何在asp.net core 2.0中將起始頁設置為登錄頁

[英]How do I set the start page as the login page in asp.net core 2.0

嗨,伙計們,除了基礎知識外,我對路由的了解不多。

我正在嘗試將起始頁設為 ASP.Net Core 2.0 中的登錄頁。

這是我在 Startup.cs 中的配置:

services.ConfigureApplicationCookie(options =>
        {
            // Cookie settings  
            options.Cookie.HttpOnly = true;
            options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
            options.LoginPath = "/Account/Login"; 
            options.LogoutPath = "/Account/Logout"; 
            options.AccessDeniedPath = "/Account/AccessDenied"; 
            options.SlidingExpiration = true;
        });

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{Controller=Account}/{action=Login}/{id?}");
    });

我的理解是這應該帶我到登錄頁面。 但是 /Identity/Account/Login 帶我進入登錄頁面,上面的方法不起作用。

需要方向。 謝謝 :)

你的問題不清楚。 我有理由確定您實際上並不希望登錄頁面成為您的“起始頁面”(即,如果您只是轉到沒有路徑的域,則為默認頁面),而是讓您的“起始頁面”需要身份驗證並在未通過身份驗證時自動重定向到您的登錄頁面。

在那里,您似乎只是誤解了路由的工作原理。 為您的應用程序 cookie 設置指定的 URL 不會神奇地使您的頁面出現在那里。 它只是靜態地告訴框架在這些條件下重定向到哪里。 您仍然必須實際響應該特定路由,否則您將收到 404。默認情況下,身份頁面在/Identity下有路由。 如果你想改變這一點,你需要將它們@page到你的項目中,然后將它們移動到項目級別的主Pages文件夾中,或者使用@page聲明添加顯式路由:

@page "/Account/Login"

根據您提到的 URL (/Identity/Account/Login),“身份”必須是區域。 由於默認路由中未定義區域,因此它重定向到錯誤的 URL。 您所需要的只是將區域放在默認路線中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM