This commit is contained in:
Dimitrij
2025-10-19 00:43:44 +01:00
parent a2967fa999
commit 11366e5d8d
7 changed files with 65 additions and 52 deletions

View File

@@ -4,30 +4,36 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.78.2]
### Fixed
- #2855: Fix missing Username field for HTTP and HTTPS protocols
- #2852: Fix XML External Entity (XXE) vulnerability in XML deserialization
- #2851: Fix path traversal vulnerability in file operations
- #2850: Fix password dialog appearing behind splash screen on startup
- #2842: Fix element placement in options window
- #2715: Disable WinForms analyzers and suppress WFO1000 build errors for ObjectListView
- #2712: VNCEvent_Disconnected send the ProtocolBase based object reference
- #2668: fix ssh quickconnect exception
- #2611: correct registry path
- #2496: use pwfile instead of cleartext password for putty connections
- #2734: fix native build for Windows-x64
- #2939: fixed SQL injection vulnerabilities via parameterized queries
- #2940: fixed for Possible command injection via Process.Start
- #2932: fixed HTTP/HTTPS protocol to support multiple concurrent connections
- #2855: fixed missing Username field for HTTP and HTTPS protocols
- #2852: fixed XML External Entity (XXE) vulnerability in XML deserialization
- #2851: fixed path traversal vulnerability in file operations
- #2850: fixed password dialog appearing behind splash screen on startup
- #2842: fixed element placement in options window
- #2734: fixed native build for Windows-x64
- #2715: fixed Disable WinForms analyzers and suppress WFO1000 build errors for ObjectListView
- #2712: fixed VNCEvent_Disconnected send the ProtocolBase based object reference
- #2668: fixed ssh quickconnect exception
- #2611: fixed correct registry path
- #2496: fixed use pwfile instead of cleartext password for putty connections
### Added
- #2212: Add 1Password integration
- #2865: Add configurable connection tab colors to distinguish between different environments
- #2864: Add Color property to connections and folders with inheritance support
- #2863: Add ARD (Apple Remote Desktop) protocol support for macOS connections
- #2728: Add support for building mRemoteNG on Windows ARM64
- #2723: Read keyboardhook, gatewayaccesstoken and gatewaycredentialssource from RDP File
- #2690: தமிழ் (ta) Translation update
- #2643: Registry Settings: enhancements and new settings implementation
- #2931: added vault openbao connector
- #2900: added "Report a Bug" menu item to Help menu and update bug report URL to GitHub issues
- #2865: added configurable connection tab colors to distinguish between different environments
- #2864: added color property to connections and folders with inheritance support
- #2863: added ARD (Apple Remote Desktop) protocol support for macOS connections
- #2728: added support for building mRemoteNG on Windows ARM64
- #2723: added read keyboardhook, gatewayaccesstoken and gatewaycredentialssource from RDP File
- #2690: added தமிழ் (ta) Translation update
- #2643: added registry Settings: enhancements and new settings implementation
- #2591: add Clickstudios Passwordstate API connector
- #2212: added 1Password integration
### Updated
- #2883: Improve 1Password logging
- #2854: Refactor settings dialog to be opened in dockable panel (for consistency)
- #2597: Remember the opened connection file on relaunch
- #2502: Updated Polish translation

View File

@@ -3,7 +3,6 @@
using mRemoteNG.App.Update;
using mRemoteNG.Config.Settings;
using mRemoteNG.DotNet.Update;
using mRemoteNG.DotNet.Update;
using mRemoteNG.UI.Forms;
using mRemoteNG.Resources.Language;
using System;

View File

@@ -1,4 +1,4 @@
using mRemoteNG.Tools;
using mRemoteNG.Tools;
using mRemoteNG.Resources.Language;
namespace mRemoteNG.Connection

View File

@@ -24,7 +24,7 @@ namespace mRemoteNG.Connection.Protocol.Http
protected string httpOrS;
protected int defaultPort;
private string _userDataFolder;
private CoreWebView2Environment _webView2Environment;
private CoreWebView2Environment? _webView2Environment;
private Task _webView2InitializationTask;
#endregion
@@ -327,8 +327,8 @@ namespace mRemoteNG.Connection.Protocol.Http
{
try
{
// Dispose of WebView2 environment
_webView2Environment?.Dispose();
// There is no Dispose method for CoreWebView2Environment, so just set to null
_webView2Environment = null;
// Clean up the temporary user data folder
if (!string.IsNullOrEmpty(_userDataFolder) && Directory.Exists(_userDataFolder))

View File

@@ -157,7 +157,10 @@ namespace mRemoteNG.Tools
process.StartInfo.UseShellExecute = true;
process.StartInfo.FileName = argParser.ParseArguments(FileName);
var parsedArgs = argParser.ParseArguments(Arguments).Split(' ');
process.StartInfo.ArgumentList.AddRange(parsedArgs);
foreach (var arg in parsedArgs)
{
process.StartInfo.ArgumentList.Add(arg);
}
if (WorkingDir != "") process.StartInfo.WorkingDirectory = argParser.ParseArguments(WorkingDir);
if (RunElevated) process.StartInfo.Verb = "runas";
}

View File

@@ -1,9 +1,9 @@
using mRemoteNG.Themes;
using WeifenLuo.WinFormsUI.Docking;
using System.Runtime.Versioning;
// ReSharper disable UnusedAutoPropertyAccessor.Global
using System.Windows.Forms;
using mRemoteNG.Messages;
using mRemoteNG.UI.Window;
namespace mRemoteNG.UI.Window
{
@@ -34,6 +34,31 @@ namespace mRemoteNG.UI.Window
TabText = t;
}
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
// Handle Ctrl+Tab and Ctrl+PgDn to navigate to next tab
if (keyData == (Keys.Control | Keys.Tab) || keyData == (Keys.Control | Keys.PageDown))
{
if (this is ConnectionWindow connectionWindow)
{
connectionWindow.NavigateToNextTab();
return true;
}
}
// Handle Ctrl+Shift+Tab and Ctrl+PgUp to navigate to previous tab
if (keyData == (Keys.Control | Keys.Shift | Keys.Tab) || keyData == (Keys.Control | Keys.PageUp))
{
if (this is ConnectionWindow connectionWindow)
{
connectionWindow.NavigateToPreviousTab();
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
#endregion
internal void ApplyTheme()
@@ -70,8 +95,7 @@ namespace mRemoteNG.UI.Window
// BaseWindow
//
this.ClientSize = new System.Drawing.Size(284, 261);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "BaseWindow";
this.ResumeLayout(false);
}

View File

@@ -339,26 +339,7 @@ namespace mRemoteNG.UI.Window
ResizeEnd?.Invoke(sender, e);
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// Handle Ctrl+Tab and Ctrl+PgDn to navigate to next tab
if (keyData == (Keys.Control | Keys.Tab) || keyData == (Keys.Control | Keys.PageDown))
{
NavigateToNextTab();
return true;
}
// Handle Ctrl+Shift+Tab and Ctrl+PgUp to navigate to previous tab
if (keyData == (Keys.Control | Keys.Shift | Keys.Tab) || keyData == (Keys.Control | Keys.PageUp))
{
NavigateToPreviousTab();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
private void NavigateToNextTab()
internal void NavigateToNextTab()
{
try
{
@@ -381,7 +362,7 @@ namespace mRemoteNG.UI.Window
}
}
private void NavigateToPreviousTab()
internal void NavigateToPreviousTab()
{
try
{
@@ -741,7 +722,7 @@ namespace mRemoteNG.UI.Window
}
}
foreach (IDockContent dockContent in connDock.DocumentsToArray())
foreach (IDockContent dockContent in connDock.Documents.ToArray())
{
ConnectionTab tab = (ConnectionTab)dockContent;
if (selectedTab != tab)