Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }