如何在asp.net core razor页面中拒绝匿名用户?

mko*_*mko 5 c# asp.net-core razor-pages

除了登录页面,我如何拒绝匿名用户访问 asp.net core 中的任何 razor 页面?

我试过

    services.AddMvc()
        .AddRazorPagesOptions(options =>
        {
            options.RootDirectory = "/";
            options.Conventions.AllowAnonymousToPage("/Account/Login");
            options.Conventions.AuthorizeFolder("/");
        })
        .SetCompatibilityVersion(CompatibilityVersion.Latest);
Run Code Online (Sandbox Code Playgroud)

Mik*_*ind 6

对于 Razor Pages 2.x 应用程序,您需要做的就是将以下内容添加到您的Configure方法中,以防止未经授权的用户访问 Pages 文件夹或子文件夹中的任何页面:

services.AddMvc().AddRazorPagesOptions(options => {
    options.Conventions.AuthorizeFolder("/");
});
Run Code Online (Sandbox Code Playgroud)

如果您使用的是 .NET Core 3,以下将做同样的事情:

services.AddRazorPages(options => {
    options.Conventions.AuthorizeFolder("/");
});
Run Code Online (Sandbox Code Playgroud)

未经授权的用户将被重定向到默认登录页面,该页面位于 Identity/Account/Login