mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 14:07:46 +08:00
upd
This commit is contained in:
44
CHANGELOG.md
44
CHANGELOG.md
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using mRemoteNG.Tools;
|
||||
using mRemoteNG.Tools;
|
||||
using mRemoteNG.Resources.Language;
|
||||
|
||||
namespace mRemoteNG.Connection
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user