【发布时间】:2020-12-14 22:19:18
【问题描述】:
我想知道 ASP.NET Core 中的[Authorize] 属性和AuthorizePage(string) 方法有什么区别吗?项目使用 ASP.NET Core 3.1。使用一个有什么好处或坏处吗?
据我所知,下面的两个代码是一样的:
使用 [Authorize] 属性
// ...
namespace MyApp.Account.Manage
{
[Authorize]
public partial class IndexModel : PageModel
{
// ...
使用 AuthorizePage(string) 方法 Startup.ConfigureServices
services.AddMvc()
.AddMvcOptions(o => o.EnableEndpointRouting = false)
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizePage("Account/Manage");
});
【问题讨论】:
-
文档 (docs.microsoft.com/en-us/aspnet/core/security/authorization/…) 明确指出:“使用 AuthorizePage 约定在指定路径向页面添加 AuthorizeFilter”
-
@haim770 [Authorize] 属性还会在指定路径添加授权。
-
根据docs.microsoft.com/en-us/aspnet/core/security/authorization/…,它们都可以工作。所以选择你最喜欢的。
标签: c# asp.net asp.net-core-mvc razor-pages asp.net-authorization