Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.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# 在云中验证JWT时出现问题,但在本地它可以正常工作_C#_Azure_Jwt_Cloud_Token - Fatal编程技术网

C# 在云中验证JWT时出现问题,但在本地它可以正常工作

C# 在云中验证JWT时出现问题,但在本地它可以正常工作,c#,azure,jwt,cloud,token,C#,Azure,Jwt,Cloud,Token,我在JwtSecurityTokenHandler中遇到了一个恼人的问题。我找不到这种行为的原因。我正在尝试验证从Azure Ad B2C收到的令牌 我正在使用这些验证参数: private TokenValidationParameters GetValidationParameters(RSA rsa, string audience, string issuer) { return new TokenValidationParameters()

我在JwtSecurityTokenHandler中遇到了一个恼人的问题。我找不到这种行为的原因。我正在尝试验证从Azure Ad B2C收到的令牌

我正在使用这些验证参数:

    private TokenValidationParameters GetValidationParameters(RSA rsa, string audience, string issuer)
    {
        return new TokenValidationParameters()
        {
            ValidateLifetime = true,
            ValidateAudience = true,
            ValidateIssuer = true,
            ValidateIssuerSigningKey = true,
            ValidAudience = audience,
            ValidIssuers = new List<string>() { issuer },
            IssuerSigningKey = new RsaSecurityKey(rsa)
        };
    }
TokenValidationParameters validationParameters = GetValidationParameters(rsa, audience, issuer);
IPrincipal principal = tokenHandler.ValidateToken(token, validationParameters, out SecurityToken validatedToken);
在本地运行时,一切正常。但在我的Azure函数上运行它时,它会不断抛出SecurityTokenInvalidIssuereException

令牌是完全相同的,但是本地和云中的令牌验证参数也是一样的

云计算中提供的发卡机构:

local.settings.json中的颁发者:

本地运行时的行为

正如您在这里看到的,验证成功并返回SecurityToken

云中的行为(Azure功能)

这就是我从云中执行方法的时候

正如您在控制台中看到的,它返回SecurityTokenInvalidIssuerException

这个问题似乎与云计算有关,但我到底做错了什么