Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 for ASP.NET Core-每个用户的唯一密钥_C#_.net_Asp.net Core - Fatal编程技术网

C# JWT for ASP.NET Core-每个用户的唯一密钥

C# JWT for ASP.NET Core-每个用户的唯一密钥,c#,.net,asp.net-core,C#,.net,Asp.net Core,我有ASP.NET核心应用程序。我想使用JWT进行身份验证。有一个从ConfigureServices(IServiceCollection services)调用的AddJwtBearer方法。此方法在启动时初始化一次IssuerSigningKey。我希望每个用户都有不同的secretKeys。我考虑创建自定义授权属性。也许有人已经解决了类似的问题 .AddJwtBearer(jwtSchemeName, jwtBearerOptions => { jwtBea

我有ASP.NET核心应用程序。我想使用JWT进行身份验证。有一个从
ConfigureServices(IServiceCollection services)
调用的
AddJwtBearer
方法。此方法在启动时初始化一次IssuerSigningKey。我希望每个用户都有不同的
secretKeys
。我考虑创建自定义授权属性。也许有人已经解决了类似的问题

.AddJwtBearer(jwtSchemeName, jwtBearerOptions => {
            jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = "secretKey",
                ValidateIssuer = true,
                ValidIssuer = "ValidIssuer",
                ValidateAudience = true,
                ValidAudience = "ValidAudience ",
                ValidateLifetime = true,
                ClockSkew = TimeSpan.FromSeconds(5)
            };
        });

为什么要这样做?SecretKey可以被破坏或解密。它也可以被破坏或“解密”给每个用户。。。在任何情况下,您都可以通过创建一个拦截JWT身份验证机制的HTTP过滤器来实现这一点。如果一个用户的密钥被破坏,它将不会影响其他用户。有时我们还可以重新生成secretKey@Hereticmonkey我有一个类似的问题,但是关于旋转键而不是每个用户。但是,AssJwtBearer似乎是一个单例,我还没有找到一种方法在实例化后更改IssuerSigningKey。为什么要这样做?SecretKey可以被破坏或解密。它也可以被破坏或“解密”给每个用户。。。在任何情况下,您都可以通过创建一个拦截JWT身份验证机制的HTTP过滤器来实现这一点。如果一个用户的密钥被破坏,它将不会影响其他用户。有时我们还可以重新生成secretKey@Hereticmonkey我有一个类似的问题,但是关于旋转键而不是每个用户。但是,AssJwtBearer似乎充当了一个单例,我还没有找到在实例化之后更改issueSigningKey的方法。