You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core MVC站点级[Authorize]:如何全站锁定内部Web应用

ASP.NET 全站强制身份验证方案

要实现全站锁定(所有页面默认需要身份验证),最简洁的方式是全局注册授权过滤器,无需给每个控制器手动添加[Authorize]特性,具体分框架版本说明:

.NET 6+(Top-level Statements 模式)

在Program.cs中配置控制器服务时,添加全局授权策略:

builder.Services.AddControllersWithViews(options =>
{
    // 创建要求用户必须已认证的授权策略
    var authPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    // 将策略添加为全局过滤器
    options.Filters.Add(new AuthorizeFilter(authPolicy));
});

.NET Framework / .NET 5 及更早版本

在Startup.cs的ConfigureServices方法中配置:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc(options =>
    {
        var authPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .Build();
        options.Filters.Add(new AuthorizeFilter(authPolicy));
    });
}

注意事项

  • 全局配置后,所有控制器的所有Action默认都会要求用户已认证,无需再逐个添加[Authorize]。
  • 如果有个别需要公开访问的页面(比如登录页),只需在对应的控制器或Action上添加[AllowAnonymous]特性即可,该特性会覆盖全局授权策略。

内容的提问来源于stack exchange,提问作者dath.vg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:18:13