服务器端是否检查 ASP.NET cookie?

问题描述 投票:0回答:1

我的 ASP.NET 项目使用开箱即用的默认身份验证方案。基本上我有一个像下面这样的控制器,它显示有关用户的敏感信息

[Authorize(Roles = "Administrator,Faculty")]
public async Task<IActionResult> LoadMemberTable(int max = 20)
{
    var usersAdded = await _mongoDbContext.Members.Where(x => x.EncoderId == "0").ToListAsync();

    return PartialView("Faculty/StudentTable", usersAdded);
}

因此,正如您所看到的,端点需要管理员或教员角色,不良行为者是否能够编辑自己的 cookie,并假设他的角色是管理员?即使他能够使用没有角色的普通用户帐户登录,他是否能够通过编辑他的 cookie 来访问此端点?或者 ASP.NET Core 在每次请求时都会检查此 cookie?最后,我是否必须在端点中实施自己的检查?比如检查用户是否真的具有管理员或教员的角色?

entity-framework asp.net-core authentication
1个回答
0
投票

不,用户登录后,Asp.Net Core 将创建一个加密的 cookie 并将其添加到当前响应中,不良行为者很难编辑此 cookie。

ASP.NET Core 自动检查每个请求的身份验证 cookie,

因为您将

[Authorize(Roles = "xxx,xxx")]
添加到端点。认证中间件根据认证cookie中存储的信息自动验证用户的身份和角色,您不需要自己编写代码来验证这一点。

© www.soinside.com 2019 - 2024. All rights reserved.