.NET CORE TOKEN 权限验证

为了使数据请求时更加安全,.net core提供了token验证与权限Check机制。
token验证针对于post请求,一般在form表单提交时使用,可以防止直接输入链接
发送请求。具体实现:
(1)在form表单中添加
    @Html.Partial("_PageRefreshTokenView")
    @Html.AntiForgeryToken()
(2)在后台接收端添加注解
        [HttpPost]
        [ValidateAntiForgeryToken]
        [ValidateReHttpPostToken]
这样在发送请求时就会在接收端进行token的匹配,如果不是点击button进行表单提交,
则会匹配失败,直接到error页面。

如果Ajax提交或者action提交。
(1)登录时在cookie中将用户的权限记录
identity.AddClaim(new Claim(ClaimTypes.Role, "Manager"));  // 管理者
(2)在接收端添加注解 [Authorize(Roles = "Manager")]
这样没有权限的用户直接进入会到error页面。
注意:Authorize使用必须要求cookie中存一个任何的信息,接收端无法接受。

以上出错会跑到系统的404页面,如果自定义异常页面,需要在start.cs的Configure
方法中修改,因为try catch是无法捕获到这些异常的。
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/System/Error");
}

你可能感兴趣的:(C#)