ASP.NET Core 中的简单授权

ASP.NET Core 中的授权通过 Authorize 属性及其各种参数控制。 在其最基本的形式中,通过向控制器、操作或 [Authorize] Page 应用 Razor 属性,可限制为仅允许经过身份验证的用户访问该组件。

使用 [Authorize] 属性

以下代码限制为仅允许经过身份验证的用户访问 AccountController:

cs 复制代码
[Authorize]
public class AccountController : Controller
{
    public ActionResult Login()
    {
    }

    public ActionResult Logout()
    {
    }
}

如果要将授权应用于操作而不是控制器,请将 AuthorizeAttribute 属性应用于操作本身:

cs 复制代码
public class AccountController : Controller
{
   public ActionResult Login()
   {
   }

   [Authorize]
   public ActionResult Logout()
   {
   }
}

现在只有经过身份验证的用户才能访问 Logout 函数。

你还可以使用 AllowAnonymous 属性来允许未经身份验证的用户访问单个操作。 例如:

cs 复制代码
[Authorize]
public class AccountController : Controller
{
    [AllowAnonymous]
    public ActionResult Login()
    {
    }

    public ActionResult Logout()
    {
    }
}

此代码仅允许经过身份验证的用户访问 AccountController,但 Login 操作除外,每个人都可以访问该操作,无论其状态是经过身份验证、未经过身份验证还是匿名。

[AllowAnonymous] 绕过授权语句。 如果将 [AllowAnonymous] 和某个 [Authorize] 属性结合使用,系统将忽略 [Authorize] 属性。 例如,如果在控制器级别应用 [AllowAnonymous]:

  • 将忽略来自同一控制器上的属性 [Authorize] 或控制器上的操作方法的任何授权要求。
  • 身份验证中间件不会短路,但不需要成功。

以下代码限制为仅允许经过身份验证的用户访问 LogoutModelRazor 页面:

cs 复制代码
[Authorize]
public class LogoutModel : PageModel
{
    public async Task OnGetAsync()
    {

    }

    public async Task<IActionResult> OnPostAsync()
    {

    }
}
相关推荐
Wx-bishekaifayuan9 分钟前
springboot生活易购超市管理系统54086-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
lizhongxuan11 分钟前
VirtIO:虚拟机的磁盘、网络与内存是怎样工作的
后端
计算机毕设定制辅导-无忧学长33 分钟前
《基于Spring Boot的减脂轻食购物网站》
java·vue.js·spring boot·后端·减脂轻食购物网站
沐欣工作室_lvyiyi44 分钟前
基于SpringBoot的博物馆预约系统设计与实现(论文+源码)
java·spring boot·后端·计算机毕业设计
拾光记1 小时前
Maven依赖与类加载机制
后端
迪丽热爱2 小时前
HTTP Error 500.30 - ASP.NET Core app failed to start
后端·asp.net
茉莉玫瑰花茶2 小时前
GO [ 函数 ]
开发语言·后端·golang
QuZhengRong2 小时前
【Spring】后端接收的请求参数多了一个逗号的处理办法
java·后端·spring
打工仔折腾 AI2 小时前
从零写一个CAD 02:实体容器、Esc取消与键盘失灵的排查
人工智能·后端·python·性能优化
用户8356290780513 小时前
使用 Python 拆分和提取 PDF 页面
后端·python