C# DNN锁定后为用户清除缓存

C# DNN锁定后为用户清除缓存,c#,asp.net,dotnetnuke,dnn9,C#,Asp.net,Dotnetnuke,Dnn9,DNN 9.1存在问题。锁定用户(从代码中)后,DNN缓存不会刷新 场景 用户输入的密码超过Membership.MaxInvalidPasswordAttempts;因此,用户被锁定 通过“主机”(超级用户帐户)登录并搜索锁定的用户,DNN不会将用户显示为已锁定。(实际上,我正在搜索“解锁用户”选项) Q 在将用户从代码中锁定后,有没有办法让DNN知道 我应该等待多长时间,直到DNN缓存刷新 您可以在DNN中以编程方式清除缓存 DotNetNuke.Common.Utilities.Da

DNN 9.1存在问题。锁定用户(从代码中)后,DNN缓存不会刷新

场景

  • 用户输入的密码超过Membership.MaxInvalidPasswordAttempts;因此,用户被锁定
  • 通过“主机”(超级用户帐户)登录并搜索锁定的用户,DNN不会将用户显示为已锁定。(实际上,我正在搜索“解锁用户”选项)
Q

  • 在将用户从代码中锁定后,有没有办法让DNN知道
  • 我应该等待多长时间,直到DNN缓存刷新

您可以在DNN中以编程方式清除缓存

DotNetNuke.Common.Utilities.DataCache.ClearModuleCache(TabId);
DotNetNuke.Common.Utilities.DataCache.ClearTabsCache(PortalId);
DotNetNuke.Common.Utilities.DataCache.ClearPortalCache(PortalId, false);
但我怀疑这能解决您的问题,因为锁定不是由DNN管理的,而是由ASP.NET成员管理的。
锁定是实时的。如果您转到
Admin>User Accounts>Edit User Account
,您将在Manage Account选项卡上看到“lockedout=true”。底部是解锁用户的按钮。

锁定不是由DNN管理,而是由ASP.NET成员管理,但锁定不是实时的。我检查了一下,发现[Locked Out:False]。是实时的。刚刚在9.2.2中再次测试了它。如果不是这样,那就没有意义了。每次打开用户属性时,它都从aspnet成员身份读取值。