【发布时间】:2016-07-25 17:55:42
【问题描述】:
我的 Asp.net 核心站点默认需要身份验证
services.AddMvc(config =>
{
//only allow authenticated users
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
但对于一项操作,我需要允许匿名访问(/Account/AddUser,如果数据库中没有用户)。
我创建了这个自定义策略,用于检查用户是否已通过身份验证或用户 db 是否为空。
[Authorize(Policy = "NoUsersInDatabaseOrUserAuthenticated")]
public IActionResult AddUser()
{
return View();
}
全局策略和 this 之间似乎有一个 AND,所以它不起作用。如果我添加 [AllowAnonymous],则根本不会评估该策略。
如何将全局策略替换为一项操作的自定义策略?
【问题讨论】:
标签: c# asp.net-core authorization