Identity Server 3:为特定用户设置不同的刷新令牌过期

SkyFallDev2018

新成员
已加入
2018年10月17日
留言内容
4
编程经验
3-5
我有以下设置:
客户端:AngularJS Web App
服务器:ASP.NET Web API
在服务器中,我使用IdentityFramework3对已配置(oidc-token-manager)的AngularJS客户端上的用户进行身份验证。
目前,我将我的客户端MyAngularJsApp的AbsoluteRefreshTokenLifetime设置为48小时,如下所示:
C#:
new Client
{
    Enabled = true,
    ClientId = MyAngularJsApp.Id,
    ClientUri = MyAngularJsApp.Uri,
    ClientName = MyAngularJsApp.Name,
    Flow = Flows.Implicit,
    AllowAccessToAllScopes = true,
    IdentityTokenLifetime = 300,
    AccessTokenLifetime = 3600,
    RefreshTokenExpiration = TokenExpiration.Absolute,
    RefreshTokenUsage = TokenUsage.ReUse,
    AbsoluteRefreshTokenLifetime = TimeSpan.FromDays(2).Seconds,
    RequireConsent = false,
    RedirectUris = new List<string>
    {
        MyAngularJsApp.Uri + "/assets/idSrv/callback.html",
        MyAngularJsApp.Uri + "/assets/idSrv/silentrefreshframe.html"
    },
    PostLogoutRedirectUris = new List<string>
    {
        MyAngularJsApp.Uri + "/index.html"
    }
},
有一个特定的用户将登录到我的客户端,我希望将其刷新令牌设置为持续100天,以便该用户不必在100天内进行身份验证,这是我需要该特定用户拥有100天而不需要登录是因为该用户将用于在大型显示器上显示应用程序的特定部分,因此它将保持100天不变
C#:
AbsoluteRefreshTokenLifetime = TimeSpan.FromDays(100).Seconds,
如何使只有该用户具有此刷新令牌生存期?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
这:
AbsoluteRefreshTokenLifetime = TimeSpan.FromDays(100).Seconds

无法为您提供100天的秒数。它将返回零。作为Seconds实际功能的一个示例,这是:
AbsoluteRefreshTokenLifetime = TimeSpan.FromSeconds(65).Seconds

将返回5,而不是65。您需要的是TotalSeconds属性,该属性为您提供整个TimeSpan(以秒为单位)。请注意,它是Double类型的,因为它包括小数秒,因此您需要转换为'int'。
 

SkyFallDev2018

新成员
已加入
2018年10月17日
留言内容
4
编程经验
3-5
This:
AbsoluteRefreshTokenLifetime = TimeSpan.FromDays(100).Seconds

无法为您提供100天的秒数。它将返回零。作为Seconds实际功能的一个示例,这是:
AbsoluteRefreshTokenLifetime = TimeSpan.FromSeconds(65).Seconds

将返回5,而不是65。您需要的是TotalSeconds属性,该属性为您提供整个TimeSpan(以秒为单位)。请注意,它是Double类型的,因为它包括小数秒,因此您需要转换为'int'。

是的,我只是将其更改为TotalSeconds。另外,您是否有机会将这种刷新令牌设置为100天? 特定使用者 而不是整个客户?

可以说我总共有100个用户将使用我的客户端,我希望其中的99个用户的刷新令牌为2天,而一个特定的用户的刷新令牌为100天
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
我什至不知道这是否有可能,而且我现在没有时间进行研究,但我也许以后可以。我已经完成了Identity的一些工作,但工作不多。
 

SkyFallDev2018

新成员
已加入
2018年10月17日
留言内容
4
编程经验
3-5
我什至不知道这是否有可能,而且我现在没有时间进行研究,但我也许以后可以。我已经完成了Identity的一些工作,但工作不多。

不用担心,我在同一条船上,我没有太多的经验,我目前正在学习它,我想知道是否也有可能,我想要特定用户登录的原因永远(或至少100天)是因为此用户帐户将用于登录一次并在监视器上显示一些不断更新的统计信息,所以我不希望它随时注销...

谢谢
 
最佳 底部