Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Owin安全处理程序-未对某些请求生成声明_C#_Owin_Claims Based Identity - Fatal编程技术网

C# Owin安全处理程序-未对某些请求生成声明

C# Owin安全处理程序-未对某些请求生成声明,c#,owin,claims-based-identity,C#,Owin,Claims Based Identity,我正在使用Owin安全处理程序验证Azure AD JWT,如以下示例所示: 在我的WebApi中,我创建了一个带有[Authorize]属性的方法来验证令牌。此方法调用Owin安全处理程序来验证令牌是否有效以及是否为请求生成了声明 [System.Web.Mvc.Authorize] private static bool IsTokenValid() { LoggingUtilities.Logger.TraceInformation("Validating

我正在使用Owin安全处理程序验证Azure AD JWT,如以下示例所示:

在我的WebApi中,我创建了一个带有[Authorize]属性的方法来验证令牌。此方法调用Owin安全处理程序来验证令牌是否有效以及是否为请求生成了声明

[System.Web.Mvc.Authorize]
    private static bool IsTokenValid()
    {
        LoggingUtilities.Logger.TraceInformation("Validating JWT.");
        return ClaimsPrincipal.Current.Claims != null;
    }
这在大多数情况下都可以正常工作,但对于某些请求,即使令牌存在于请求中,声明也不会完全生成

以下是生成所有索赔的时间:

当索赔未正确生成时:

在这两种情况下,请求都具有有效的JWT令牌

如果您能帮助解决此问题,我们将不胜感激

更新:
我已经意识到,这些特定的请求没有经过安全处理程序的身份验证(看起来像是Owin Katana处理程序中的错误),即使请求是有效的令牌

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                Tenant = validTenant,
                TokenValidationParameters = new TokenValidationParameters
                {
                    ValidAudience = validAudience,
                }
            });
想知道当请求未经身份验证时,是否有办法强制对用户进行上述Owin安全处理程序设置的身份验证