[英]Override Access Denied route/path with Identity Server 4/asp.net core 2.2
對於身份服務器/ ASP身份非常新,所以我希望我能夠很好地解釋這種情況。
我遇到一個問題,我的網絡應用程序試圖導航到帳戶/ AccessDenied控制器和行動,如果發現他們是未經授權的......但這個確切的控制器和操作無處可去。
我嘗試了以下幾點,但我不確定它實際上正在做我認為的事情
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = $"{config.IDServUrl}/Identity/Account/AccessDenied";
options.LoginPath = $"{config.IDServUrl}/Identity/Account/Login";
options.LogoutPath = $"{config.IDServUrl}/Identity/Account/Logout";
});
我的控制器或其中的操作具有Authorize
屬性,我使用策略將其鎖定。 該部分工作正常,如果用戶被授權,他們將成功登錄/重定向到應用程序。
如果未經授權,現在發生了什么:
https://myapp/account/accessdenied
Account/AccessDenied
在我的應用程序中的任何位置都不存在,我的Identity Server應用程序中也不存在。 如果用戶無權訪問某些內容,Identity Server將使用/Identity/Account/AccessDenied
。
所有這些都是默認的 - 我沒有改變任何相關的事情。
所以我想弄清楚的是如何告訴我的應用程序轉到https://MyIDSrvApp/Identity/Account/AccessDenied
(因為它已經存在)或者我必須手動創建一個帶有AccessDenied Action的帳戶控制器使用IDSrv保護的每個應用程序。
我對這種行為有點不清楚,如何最好地處理它,以及我的應用程序甚至從第一個位置獲取此/account/accessdenied
,因為我沒有在任何地方手動設置它。
拒絕訪問的默認路徑在cookie中設置。 因此,它是外部身份服務器。 自定義AddCookie()上的訪問被拒絕路徑使用選項
.AddCookie("Cookies", options =>
{
options.AccessDeniedPath = "/Account/oops";
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.