【发布时间】:2017-12-07 15:03:33
【问题描述】:
我在 dotnet core 中使用自定义授权过滤器,但是我注意到了一个特殊性。
OnAuthorization 方法有一个上下文,它保存登录用户的身份,在我的用例中应该是一个。这在我的应用程序中运行良好,但是我随后使用 app.UseStatusCodePagesWithReExecute(...); 或 app.UseExceptionHandler(...); 配置了错误页面,并且每当触发这些错误页面时,即如果发生错误,则在 OnAuthorization 中,上下文具有重复的标识。
我不确定这是否是 dotnet core 中的错误,或者我没有完全正确配置某些设置。添加的第二个身份似乎与我期望的身份重复。
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";
}
...
}
【问题讨论】:
标签: c# asp.net authorization asp.net-core-mvc .net-core