public virtual List <string> GetRolesForUser(IPrincipal currentUser) { if (_userRoleLookup.ContainsKey(currentUser.Identity.Name)) { TimedUserRoles timedUserRoles = _userRoleLookup[currentUser.Identity.Name]; if (timedUserRoles != null) { string permissionCacheTimeoutMinutesString = SpfConfiguration.Item(ApplicationConstants.AppSettings.PermissionCacheTimeoutMinutes); string permissionCacheIsRollingTimeoutString = SpfConfiguration.Item(ApplicationConstants.AppSettings.PermissionCacheIsRollingTimeout); int permissionCacheTimeoutMinutes; bool isPermissionCacheIsRollingTimeout; if ((Int32.TryParse(permissionCacheTimeoutMinutesString, out permissionCacheTimeoutMinutes)) && (Boolean.TryParse(permissionCacheIsRollingTimeoutString, out isPermissionCacheIsRollingTimeout))) { if (timedUserRoles.LastAccess.AddMinutes(permissionCacheTimeoutMinutes) > DateTime.Now) { if (isPermissionCacheIsRollingTimeout) { timedUserRoles.LastAccess = DateTime.Now; } return(timedUserRoles.UserRoles); } } _userRoleLookup.Remove(currentUser.Identity.Name); } } return(null); }
public virtual void SaveRolesForUser(IPrincipal currentUser, List <string> userRoles) { if (_userRoleLookup.ContainsKey(currentUser.Identity.Name)) { _userRoleLookup.Remove(currentUser.Identity.Name); } TimedUserRoles timedUserRoles = new TimedUserRoles(DateTime.Now, userRoles); _userRoleLookup.Add(currentUser.Identity.Name, timedUserRoles); }
public virtual List <string> GetRolesForUser(IPrincipal currentUser) { if (_userRoleLookup.ContainsKey(currentUser.Identity.Name)) { TimedUserRoles timedUserRoles = _userRoleLookup[currentUser.Identity.Name]; if (timedUserRoles != null) { if ((Properties.Settings.Default.PermissionCacheTimeoutMinutes <= 0) || (timedUserRoles.LastAccess.AddMinutes(Properties.Settings.Default.PermissionCacheTimeoutMinutes) > DateTime.Now)) { if (Properties.Settings.Default.PermissionCacheIsRollingTimeout) { timedUserRoles.LastAccess = DateTime.Now; } return(timedUserRoles.UserRoles); } _userRoleLookup.Remove(currentUser.Identity.Name); } } return(null); }