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

如何在Web应用中仅为部分Razor Pages添加Azure Active Directory身份验证

实现Razor Pages应用仅Settings页面需Azure AD身份验证的方案

方案1:直接为Settings页面添加授权特性

  • 打开Settings页对应的后端代码文件Settings.cshtml.cs
  • 在命名空间引用处添加:using Microsoft.AspNetCore.Authorization;
  • 在Settings的PageModel类上添加[Authorize]特性,示例代码如下:
[Authorize]
public class SettingsModel : PageModel
{
    // 页面原有逻辑保持不变
    public void OnGet()
    {
    }
}

该方案实现简单,非常适合单页面授权的场景。

方案2:在启动配置中统一配置页面授权规则

如果不希望授权规则分散在各个PageModel中,可以在应用启动配置里统一约定规则:

  • 打开.NET 6+项目的Program.cs文件,找到AddRazorPages的配置段,修改为如下内容:
builder.Services.AddRazorPages()
    .AddRazorPagesOptions(options =>
    {
        // 仅为Settings页面添加身份验证要求
        options.Conventions.AuthorizePage("/Settings");
    });
  • 如果是.NET 5及更早版本,在Startup.cs的ConfigureServices方法中修改对应配置即可。

注意事项

  • 不要在全局配置中添加全局身份验证要求(比如不要在授权中间件后全局配置RequireAuthenticatedUser规则),否则所有页面都会强制要求登录
  • 你当前Settings布局页引用的<partial name="_LoginPartial" />仅用于展示登录/登出按钮,不会影响页面授权逻辑,未登录用户访问Settings页时会自动跳转到Azure AD登录界面,验证通过后才会返回Settings页,其余页面不受影响可正常匿名访问。

内容的提问来源于stack exchange,提问作者Praveen Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:36:01