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

Razor Page登录后按员工部门过滤Fax列表需求

实现登录员工仅查看所属部门传真的解决方案

步骤1:获取当前登录员工的部门ID

在Fax/Index.cshtml.cs的OnGet方法中,通过当前登录用户标识获取对应员工信息,提取所属部门ID:

private readonly ApplicationDbContext _context;
private readonly UserManager<Register> _userManager;

// 构造函数注入依赖
public IndexModel(ApplicationDbContext context, UserManager<Register> userManager)
{
    _context = context;
    _userManager = userManager;
}

public async Task<IActionResult> OnGetAsync()
{
    // 获取当前登录用户
    var currentUser = await _userManager.GetUserAsync(User);
    if (currentUser == null)
    {
        return RedirectToPage("/Account/Login");
    }

    // 提取用户所属部门ID(假设Register实体的部门外键为DepartmentId)
    var userDeptId = currentUser.DepartmentId;

步骤2:过滤查询所属部门的传真

替换原有获取所有传真的逻辑,添加部门ID过滤条件:

// 查询当前用户部门下的所有传真(假设Fax实体包含DepartmentId字段)
    Faxes = await _context.Faxes
        .Where(f => f.DepartmentId == userDeptId)
        .ToListAsync();

    return Page();
}

// 页面绑定的传真列表
public List<Fax> Faxes { get; set; }

特殊关联场景处理

如果传真与部门的关联是通过中间实体(比如传真关联文档,文档关联部门),调整过滤逻辑即可:

Faxes = await _context.Faxes
    .Include(f => f.Document) // 关联中间实体
    .Where(f => f.Document.DepartmentId == userDeptId)
    .ToListAsync();

可选:增强权限控制

在页面模型类上添加[Authorize]特性,确保未登录用户无法访问该页面:

[Authorize]
public class IndexModel : PageModel
{
    // 现有代码...
}

内容的提问来源于stack exchange,提问作者hossam reda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:07:01