Skip to content

Releases: GleamTech/ImageUltimate

ImageUltimate v7.1.0

24 Apr 01:11

Choose a tag to compare

Version 7.1.0 - April 24, 2026

  • Fixed: The fix back in Version 6.5.1 - April 11, 2025 for parsing Referer http header was not sufficient.
    This warning was occasionally recorded in server's Event Log:
    This operation is not supported for a relative URI.

  • Improved: Ensured stability of cookieless session feature for iframe with a cross-domain URL.
    This feature (GleamTechWebConfiguration.AutoCookielessSessionEnabled) was first added in Version 4.4.1 - November 23, 2020.

  • Added: GleamTechWebConfiguration.PathBaseForSessionEnabled property that specifies whether
    to use request PathBase (correct cased application virtual path) for session cookie and not default path /.
    The default value is true so it's active by default.

    The problem with ASP.NET Core session is, if for example you have 2 app instances on the same domain:

    1. First visit to /MyApp1, the session cookie is created and set (with cookie path /).
    2. Then visit to /MyApp2, the session cookie exists (with cookie path /)
      but this app cannot decrypt it because their key ring is not shared.
      This causes unnecessary Error unprotecting the session cookie warnings in server's Event Log.
      A new session cookie is still created but the problem is the logging in CookieProtection.Unprotect() on exception.

    In ASP.NET classic, session cookie path also defaults to / and not to the application virtual path,
    though this does not cause a warning/error, but you get a new empty session with the existing session cookie.

    So, the best solution is to use correct cased application virtual path as session cookie path when available
    and not the default path /, to isolate session of all app instances on the same domain, for example:

    ApplicationVirtualPath:      /DocumentUltimate/AspNetWebFormsCS               ? (IIS canonical casing)
    Request.Path:                /documentultimate/aspNetWebFormsCS/Page.aspx     ? (actual request casing)
    PathBase (correct cased):    /documentultimate/aspNetWebFormsCS
    

    Cookie paths are case-sensitive so when not using the default path /,
    we ensure PathBase used for cookie path is correct cased (cased same as the one user typed in address bar).

    However, if you want to share the session cookie across all app instances on the same domain,
    set this to false (default ASP.NET Session behavior).

  • Improved: Normally, to have Session cookie work properly for an ASP.NET Core app hosted in IIS,
    "Load User Profile" property should be set to true for application pool used for that app.
    However for convenience, we will now use Keys subfolder under GleamTechConfiguration.TemporaryFolder
    by default in AddGleamTech() if KeyManagementOptions.XmlRepository is not explicitly set
    and if app is not hosted in Azure Apps.
    This is because if keys can not be persisted to a writable directory, they are stored in-memory
    and when the process shuts down (or application pool is recycled), all generated keys are lost.
    As a result, these unnecessary warnings are recorded in server's Event Log:

    No XML encryptor configured. Key {guid} may be persisted to storage in unencrypted form.
    
    Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
    
    Using an in-memory repository. Keys will not be persisted to storage.
    
    The antiforgery token could not be decrypted.
    
    Error unprotecting the session cookie.
    
    The key {guid} was not found in the key ring.
    

    This way even if "Load User Profile" property is set to false, we will fix default ASP.NET behavior
    and avoid warnings spamming server's Event Log.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v7.0.0

07 Apr 01:27

Choose a tag to compare

Version 7.0.0 - April 6, 2026

  • Changed: License keys are changed so please go to https://www.gleamtech.com/upgrade and acquire a new license
    key if you want to use this version (or higher). If your one year maintenance has not ended, you will receive a
    new free license key on the same page.

  • Changed: AssemblyVersion is changed so recompile your project against the new DLLs (drop in to bin folder will not work).

  • Improved: Stability and performance of image processing and image formats.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.9

23 Dec 23:03

Choose a tag to compare

Version 6.6.9 - December 23, 2025

  • Improved: Updated GleamTech.Common.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.8

23 Dec 22:51

Choose a tag to compare

Version 6.6.8 - December 18, 2025

  • Improved: Updated GleamTech.Common.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.7

21 Oct 10:48

Choose a tag to compare

Version 6.6.7 - October 20, 2025

  • Improved: Set minimum value limits for ImageCache settings to prevent unnecessary Document cache info is not found
    errors due to user misconfiguration (e.g. thinking they can disable cache by setting zero
    or low values but cache is required for correct operation of DocumentViewer).
    The error happened due to very early trimming of the cache especially when multiple users.

    • MaxAge -> The minimum value is 10 minutes.
    • WaitTimeout -> The minimum value is 2 minutes.
    • AutoTrimInterval -> The minimum value is 5 minutes. The default value is now changed from 20 minutes to 15 minutes
      mainly because IIS AppPool default idle-timeout setting is 20 minutes so we ensure the auto-trim is run before app shutdown.
  • Improved: Overwrite existing CacheTrim.log if it was created before ImageCache.MaxAge to avoid very large log files.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.6

02 Oct 14:38

Choose a tag to compare

Version 6.6.6 - October 2, 2025

  • Improved: AuthenticatedUser.Windows and AuthenticatedUser.Claims used for PhysicalLocation will now also work on
    ASP.NET Core (previously only worked on ASP.NET Classic).
    Also the enum members AuthenticatedUser.Windows and AuthenticatedUser.Claims are made obsolete.
    Use AuthenticatedUser.WebServer and AuthenticatedUser.ClaimsUpn instead.
    These new enum member names are more explanatory for their purpose.

  • Improved: Prevent log file name conflicts when multiple Apps sharing App_Data
    For example try file names GleamTech.log, GleamTech-AppName.log, GleamTech-AppName-z0yxh40r.log.
    Also provide environment details (app name, location, os) in GleamTech.log just like AssemblyResolver.log
    when initializing GleamTechConfiguration.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.5

26 Sep 22:31

Choose a tag to compare

Version 6.6.5 - September 26, 2025

  • Improved: The default value for GleamTechConfiguration.TemporaryFolder will now be [AppData Temporary Folder]
    if current user has read/write access, if not it will be [System Temporary Folder].

    This change is done so that developer is only concerned about write permissions to [AppData Temporary Folder]
    when publishing to production and not system temporary folders such as C:\Windows\Temp.
    This way, everything will be on the table i.e. all generated files (AssemblyResolver files, cache files, log files) will be in a single place.
    Files from old system temporary folder will be migrated/moved to this new location on application startup (if has write access).

    [AppData Temporary Folder] can be different for different environments:

    • For ASP.NET Core apps, the resolved result of ~/App_Data:
      • [AppBase]\wwwroot\App_Data\Temporary
    • For ASP.NET Classic apps, the resolved result of ~/App_Data:
      • [AppBase]\App_Data\Temporary
    • For Console or other non-web apps:
      • [AppBase]\AppData\Temporary

    [System Temporary Folder] can be different for different environments:

    • For ASP.NET Core apps, the result of Path.GetTempPath() which
      depends on "TMP", "TEMP" and "USERPROFILE" environment variables:
      • %WINDIR%\Temp\GleamTech\[AppName]-[AppHash]
      • %LOCALAPPDATA%\Temp\GleamTech\[AppName]-[AppHash]
        (if "Load User Profile" is enabled for AppPool in IIS)
    • For ASP.NET Classic apps:
      • %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\[AppName]\[AppHash]\GleamTech
      • %WINDIR%\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\[AppName]\[AppHash]\GleamTech
        (if 32-bit AppPool)
      • %LOCALAPPDATA%\Temp\Temporary ASP.NET Files\vs\[AppHash]\GleamTech
        (when debugging in Visual Studio)
    • For Console or other non-web apps, the result of Path.GetTempPath() which
      depends on "TMP", "TEMP" and "USERPROFILE" environment variables:
      • %LOCALAPPDATA%\Temp\GleamTech\[AppName]-[AppHash]
      • %WINDIR%\Temp\GleamTech\[AppName]-[AppHash]
    • For apps running on unix-like platforms:
      • /tmp/GleamTech/[AppName]-[AppHash]
  • Improved: ImpersonationContext is improved to support multi-threads and async threads.
    Ensured ImpersonationInfo and LogonCredential do not lose access tokens (re-cache when necessary).

  • Improved: TemporaryFolder, FileCache and DbProvider will now do two tries for access, if first one fails,
    will try again by reverting possible impersonation.

  • Changed: Removed legacy GleamTechConfiguration.AlphaFileSystemEnabled property.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.2

11 Sep 00:41

Choose a tag to compare

Version 6.6.2 - September 10, 2025

  • Improved: Stability and performance of image processing and image formats.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.1

01 Sep 22:58

Choose a tag to compare

Version 6.6.1 - September 1, 2025

  • Improved: Updated GleamTech.Common.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+

ImageUltimate v6.6.0

27 Aug 14:03

Choose a tag to compare

Version 6.6.0 - August 27, 2025

  • Improved: Stability and performance of image processing and image formats.

Included example projects:

  • ASP.NET Core (C#) - Visual Studio 2019+
  • ASP.NET Core on .NET Framework (C#)- Visual Studio 2017+
  • ASP.NET MVC (C#) - Visual Studio 2015+
  • ASP.NET MVC (VB) - Visual Studio 2015+
  • ASP.NET WebForms (C#) - Visual Studio 2015+
  • ASP.NET WebForms (VB) - Visual Studio 2015+