在 VS2022 中,我啟動了一個新的 Razor 頁面專案,其中選擇了“個人帳戶”作為身份驗證型別。我發現沒有可用于自定義的與身份相關的代碼,因為它們是使用 Razor UI 預先構建的。我想自定義頁面,所以我按照下面建議的方法生成了頁面。

令人驚訝的是,我發現在排除生成的頁面時會自動使用預構建的 Razor UI 頁面(我仍然可以訪問和使用 url /Identity/Account/Register)。如何禁用預構建的 Razor UI 頁面?
uj5u.com熱心網友回復:
您可以添加app.Map如下中間件:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.Map("/Identity/Account/Register", HandleRequest);
app.Map("/Identity/Account/Login", HandleRequest);
static void HandleRequest(IApplicationBuilder app)
{
app.Run(async context =>
{
context.Response.StatusCode = StatusCodes.Status404NotFound;
await context.Response.WriteAsync("404 Not Found");
});
}
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
}
uj5u.com熱心網友回復:
當您包含 UI 包時,您選擇使用所有它。您可以通過搭建腳手架然后NotFoundResult從OnGetandOnPost方法回傳 a 來選擇性地禁用頁面,但這可能很費力。您還可以通過指定永遠不會應用于用戶的授權策略或不存在的角色來使用授權來阻止對頁面或檔案夾的訪問,例如:
[Authorize(Roles ="Does Not Exist")]
public class RegisterModel : PageModel
{
...
或者,如果您不再需要 Identity UI,請從您的應用程式中卸載該軟體包。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/416857.html
標籤:
上一篇:在.Net6中,Controller類沒有出現。相反,可以選擇將其變成HomeController。這是更新嗎?
