1
我在dotnet核心中使用自定义授权过滤器,但我注意到一个特点。自定义授权筛选器获取重复身份ReExecute
OnAuthorization
方法有一个上下文来保存登录用户的身份,这在我的用例中应该是一个。这在我的应用程序中工作正常,但是我然后使用app.UseStatusCodePagesWithReExecute(...);
或app.UseExceptionHandler(...);
配置错误页面,并且每当触发这些页面时,即发生错误,然后在OnAuthorization
内上下文具有重复的身份。
我不确定这是否是dotnet内核中的错误,或者有一些设置没有正确配置。添加的第二个标识看起来与我期望的相同。
Startup.cs:
services.AddMvc(options =>
{
// identifies users on POP Forums actions
options.Filters.Add(typeof(MyAttribute));
});
MyAttribute.cs:
public void OnAuthorization(AuthorizationFilterContext context)
{
var claimsCount = context.HttpContext.User.Identities.Count();
if (claimsCount > 1)
{
var oops = "Something went wrong";
}
...
}