mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 14:07:46 +08:00
merged develop into hyperv
This commit is contained in:
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@@ -17,7 +17,7 @@ You'll find all information on our GitHub workflow in our [Wiki](https://github.
|
||||
|
||||
- [Branches](https://github.com/mRemoteNG/mRemoteNG/wiki/Branches)
|
||||
- [Bug Repots](https://github.com/mRemoteNG/mRemoteNG/wiki/Bug-Reports)
|
||||
- [Feauture Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Feature-Requests)
|
||||
- [Feature Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Feature-Requests)
|
||||
- [Pull Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Pull-Requests)
|
||||
|
||||
Want to help but don't know where to start? Check out the issues that we've labeled with [`Help Wanted`](https://github.com/mRemoteNG/mRemoteNG/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+Wanted%22) or [`ready`](https://github.com/mRemoteNG/mRemoteNG/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3A%22ready%22). These will vary in difficulty, but should be possible for new contributors.
|
||||
|
||||
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
1
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -19,6 +19,7 @@
|
||||
- [ ] Bug fix (non-breaking change which fixes an issue)
|
||||
- [ ] New feature (non-breaking change which adds functionality)
|
||||
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
|
||||
- [ ] Updated translation
|
||||
|
||||
## Checklist:
|
||||
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
||||
|
||||
@@ -6,7 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
## [Unreleased]
|
||||
### Added
|
||||
### Changed
|
||||
- #1468: Improved mRemoteNG startup time
|
||||
- #1443: Chinese (simplified) translation improvements
|
||||
- #1437: Norwegian translation improvements
|
||||
- #1239: Increased default key derivation function (KDF) iterations from 1000 to 10000
|
||||
- Moved most RDP enums outside of the RDP protocol class. Scripts which reference these enums will need to be updated.
|
||||
### Fixed
|
||||
- #1447: Exception occurs when resetting layout
|
||||
- #1439: Searching in hosts tree loses first keystroke
|
||||
- #1428: Fixed a rare error when checking for FIPS
|
||||
- #1426: Tabbing is reversed in config window
|
||||
- #1425: Connections didn't always respect the Panel property
|
||||
|
||||
@@ -38,7 +38,7 @@ For a detailed feature list and general usage support, refer to the [User Manual
|
||||
|
||||
## Installation
|
||||
|
||||
Before installing make sure you have all the required [prerequisites](https://github.com/mRemoteNG/mRemoteNG/wiki/Prerequisites).
|
||||
Before installing make sure you fullfill all the [minimum requirements](https://mremoteng.readthedocs.io/en/latest/installation/minimum_requirements.html).
|
||||
|
||||
mRemoteNG is available as a redistributable msi package, and can be downloaded from the following locations:
|
||||
* [GitHub](https://github.com/mRemoteNG/mRemoteNG/releases)
|
||||
|
||||
@@ -100,9 +100,9 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
|
||||
UseVmId = false,
|
||||
RenderingEngine = HTTPBase.RenderingEngine.Gecko,
|
||||
ICAEncryptionStrength = IcaProtocol.EncryptionStrength.Encr40Bit,
|
||||
RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth,
|
||||
Colors = RdpProtocol.RDPColors.Colors16Bit,
|
||||
Resolution = RdpProtocol.RDPResolutions.Res1366x768,
|
||||
RDPAuthenticationLevel = AuthenticationLevel.WarnOnFailedAuth,
|
||||
Colors = RDPColors.Colors16Bit,
|
||||
Resolution = RDPResolutions.Res1366x768,
|
||||
AutomaticResize = true,
|
||||
DisplayWallpaper = true,
|
||||
DisplayThemes = true,
|
||||
@@ -113,7 +113,7 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
|
||||
RedirectPorts = true,
|
||||
RedirectPrinters = true,
|
||||
RedirectSmartCards = true,
|
||||
RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer,
|
||||
RedirectSound = RDPSounds.LeaveAtRemoteComputer,
|
||||
RedirectAudioCapture = true,
|
||||
RedirectKeys = true,
|
||||
VNCCompression = ProtocolVNC.Compression.Comp4,
|
||||
@@ -124,8 +124,8 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
|
||||
VNCColors = ProtocolVNC.Colors.Col8Bit,
|
||||
VNCSmartSizeMode = ProtocolVNC.SmartSizeMode.SmartSAspect,
|
||||
VNCViewOnly = true,
|
||||
RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Detect,
|
||||
RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard
|
||||
RDGatewayUsageMethod = RDGatewayUsageMethod.Detect,
|
||||
RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -19,9 +19,9 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
|
||||
private const string ExpectedGatewayHostname = "gatewayhostname.domain.com";
|
||||
private const string ExpectedLoadBalanceInfo = "tsv://MS Terminal Services Plugin.1.RDS-NAME";
|
||||
private const int ExpectedPort = 9933;
|
||||
private const RdpProtocol.RDPColors ExpectedColors = RdpProtocol.RDPColors.Colors24Bit;
|
||||
private const RDPColors ExpectedColors = RDPColors.Colors24Bit;
|
||||
private const bool ExpectedBitmapCaching = false;
|
||||
private const RdpProtocol.RDPResolutions ExpectedResolutionMode = RdpProtocol.RDPResolutions.FitToWindow;
|
||||
private const RDPResolutions ExpectedResolutionMode = RDPResolutions.FitToWindow;
|
||||
private const bool ExpectedWallpaperDisplay = true;
|
||||
private const bool ExpectedThemesDisplay = true;
|
||||
private const bool ExpectedFontSmoothing = true;
|
||||
@@ -30,7 +30,7 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
|
||||
private const bool ExpectedDriveRedirection = true;
|
||||
private const bool ExpectedPortRedirection = true;
|
||||
private const bool ExpectedPrinterRedirection = true;
|
||||
private const RdpProtocol.RDPSounds ExpectedSoundRedirection = RdpProtocol.RDPSounds.BringToThisComputer;
|
||||
private const RDPSounds ExpectedSoundRedirection = RDPSounds.BringToThisComputer;
|
||||
|
||||
|
||||
[OneTimeSetUp]
|
||||
|
||||
@@ -24,20 +24,20 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
|
||||
private const string ExpectedPassword = "passwordHere!";
|
||||
private const bool ExpectedUseConsoleSession = true;
|
||||
private const int ExpectedPort = 9933;
|
||||
private const RdpProtocol.RDGatewayUsageMethod ExpectedGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
|
||||
private const RDGatewayUsageMethod ExpectedGatewayUsageMethod = RDGatewayUsageMethod.Always;
|
||||
private const string ExpectedGatewayHostname = "gatewayserverhost.innerdomain.net";
|
||||
private const string ExpectedGatewayUsername = "gatewayusername";
|
||||
private const string ExpectedGatewayDomain = "innerdomain";
|
||||
private const string ExpectedGatewayPassword = "gatewayPassword123";
|
||||
private const RdpProtocol.RDPResolutions ExpectedRdpResolution = RdpProtocol.RDPResolutions.FitToWindow;
|
||||
private const RdpProtocol.RDPColors ExpectedRdpColorDepth = RdpProtocol.RDPColors.Colors24Bit;
|
||||
private const RdpProtocol.RDPSounds ExpectedAudioRedirection = RdpProtocol.RDPSounds.DoNotPlay;
|
||||
private const RDPResolutions ExpectedRdpResolution = RDPResolutions.FitToWindow;
|
||||
private const RDPColors ExpectedRdpColorDepth = RDPColors.Colors24Bit;
|
||||
private const RDPSounds ExpectedAudioRedirection = RDPSounds.DoNotPlay;
|
||||
private const bool ExpectedKeyRedirection = true;
|
||||
private const bool ExpectedSmartcardRedirection = true;
|
||||
private const bool ExpectedDriveRedirection = true;
|
||||
private const bool ExpectedPortRedirection = true;
|
||||
private const bool ExpectedPrinterRedirection = true;
|
||||
private const RdpProtocol.AuthenticationLevel ExpectedAuthLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth;
|
||||
private const AuthenticationLevel ExpectedAuthLevel = AuthenticationLevel.WarnOnFailedAuth;
|
||||
|
||||
|
||||
[OneTimeSetUp]
|
||||
|
||||
@@ -23,20 +23,20 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers
|
||||
private const string ExpectedPassword = "passwordHere!";
|
||||
private const bool ExpectedUseConsoleSession = true;
|
||||
private const int ExpectedPort = 9933;
|
||||
private const RdpProtocol.RDGatewayUsageMethod ExpectedGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
|
||||
private const RDGatewayUsageMethod ExpectedGatewayUsageMethod = RDGatewayUsageMethod.Always;
|
||||
private const string ExpectedGatewayHostname = "gatewayserverhost.innerdomain.net";
|
||||
private const string ExpectedGatewayUsername = "gatewayusername";
|
||||
private const string ExpectedGatewayDomain = "innerdomain";
|
||||
private const string ExpectedGatewayPassword = "gatewayPassword123";
|
||||
private const RdpProtocol.RDPResolutions ExpectedRdpResolution = RdpProtocol.RDPResolutions.FitToWindow;
|
||||
private const RdpProtocol.RDPColors ExpectedRdpColorDepth = RdpProtocol.RDPColors.Colors24Bit;
|
||||
private const RdpProtocol.RDPSounds ExpectedAudioRedirection = RdpProtocol.RDPSounds.DoNotPlay;
|
||||
private const RDPResolutions ExpectedRdpResolution = RDPResolutions.FitToWindow;
|
||||
private const RDPColors ExpectedRdpColorDepth = RDPColors.Colors24Bit;
|
||||
private const RDPSounds ExpectedAudioRedirection = RDPSounds.DoNotPlay;
|
||||
private const bool ExpectedKeyRedirection = true;
|
||||
private const bool ExpectedSmartcardRedirection = true;
|
||||
private const bool ExpectedDriveRedirection = true;
|
||||
private const bool ExpectedPortRedirection = true;
|
||||
private const bool ExpectedPrinterRedirection = true;
|
||||
private const RdpProtocol.AuthenticationLevel ExpectedAuthLevel = RdpProtocol.AuthenticationLevel.AuthRequired;
|
||||
private const AuthenticationLevel ExpectedAuthLevel = AuthenticationLevel.AuthRequired;
|
||||
|
||||
|
||||
[OneTimeSetUp]
|
||||
|
||||
@@ -165,7 +165,7 @@ namespace mRemoteNGTests.Connection
|
||||
{
|
||||
var wasCalled = false;
|
||||
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
|
||||
_testAbstractConnectionInfoData.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.AuthRequired;
|
||||
_testAbstractConnectionInfoData.RDPAuthenticationLevel = AuthenticationLevel.AuthRequired;
|
||||
Assert.That(wasCalled, Is.True);
|
||||
}
|
||||
|
||||
@@ -201,7 +201,7 @@ namespace mRemoteNGTests.Connection
|
||||
{
|
||||
var wasCalled = false;
|
||||
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
|
||||
_testAbstractConnectionInfoData.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
|
||||
_testAbstractConnectionInfoData.RDGatewayUsageMethod = RDGatewayUsageMethod.Always;
|
||||
Assert.That(wasCalled, Is.True);
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ namespace mRemoteNGTests.Connection
|
||||
{
|
||||
var wasCalled = false;
|
||||
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
|
||||
_testAbstractConnectionInfoData.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard;
|
||||
_testAbstractConnectionInfoData.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard;
|
||||
Assert.That(wasCalled, Is.True);
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ namespace mRemoteNGTests.Connection
|
||||
{
|
||||
var wasCalled = false;
|
||||
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
|
||||
_testAbstractConnectionInfoData.Resolution = RdpProtocol.RDPResolutions.Res1366x768;
|
||||
_testAbstractConnectionInfoData.Resolution = RDPResolutions.Res1366x768;
|
||||
Assert.That(wasCalled, Is.True);
|
||||
}
|
||||
|
||||
@@ -273,7 +273,7 @@ namespace mRemoteNGTests.Connection
|
||||
{
|
||||
var wasCalled = false;
|
||||
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
|
||||
_testAbstractConnectionInfoData.Colors = RdpProtocol.RDPColors.Colors16Bit;
|
||||
_testAbstractConnectionInfoData.Colors = RDPColors.Colors16Bit;
|
||||
Assert.That(wasCalled, Is.True);
|
||||
}
|
||||
|
||||
@@ -372,7 +372,7 @@ namespace mRemoteNGTests.Connection
|
||||
{
|
||||
var wasCalled = false;
|
||||
_testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true;
|
||||
_testAbstractConnectionInfoData.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
|
||||
_testAbstractConnectionInfoData.RedirectSound = RDPSounds.DoNotPlay;
|
||||
Assert.That(wasCalled, Is.True);
|
||||
}
|
||||
|
||||
|
||||
@@ -222,10 +222,10 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
|
||||
: new ConnectionInfo();
|
||||
|
||||
node.Protocol = protocol;
|
||||
node.Resolution = RdpProtocol.RDPResolutions.Res800x600;
|
||||
node.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Never;
|
||||
node.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.Yes;
|
||||
node.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
|
||||
node.Resolution = RDPResolutions.Res800x600;
|
||||
node.RDGatewayUsageMethod = RDGatewayUsageMethod.Never;
|
||||
node.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes;
|
||||
node.RedirectSound = RDPSounds.DoNotPlay;
|
||||
node.VNCAuthMode = ProtocolVNC.AuthMode.AuthVNC;
|
||||
node.VNCProxyType = ProtocolVNC.ProxyType.ProxyNone;
|
||||
node.UseVmId = false;
|
||||
|
||||
@@ -18,12 +18,12 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
|
||||
RunVerification();
|
||||
}
|
||||
|
||||
[TestCase(RdpProtocol.RDGatewayUsageMethod.Always)]
|
||||
[TestCase(RdpProtocol.RDGatewayUsageMethod.Detect)]
|
||||
public void RdGatewayPropertiesShown_WhenRdGatewayUsageMethodIsNotNever(RdpProtocol.RDGatewayUsageMethod gatewayUsageMethod)
|
||||
[TestCase(RDGatewayUsageMethod.Always)]
|
||||
[TestCase(RDGatewayUsageMethod.Detect)]
|
||||
public void RdGatewayPropertiesShown_WhenRdGatewayUsageMethodIsNotNever(RDGatewayUsageMethod gatewayUsageMethod)
|
||||
{
|
||||
ConnectionInfo.RDGatewayUsageMethod = gatewayUsageMethod;
|
||||
ConnectionInfo.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.Yes;
|
||||
ConnectionInfo.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes;
|
||||
ExpectedPropertyList.AddRange(new []
|
||||
{
|
||||
nameof(mRemoteNG.Connection.ConnectionInfo.RDGatewayHostname),
|
||||
@@ -33,11 +33,11 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
|
||||
RunVerification();
|
||||
}
|
||||
|
||||
[TestCase(RdpProtocol.RDGatewayUseConnectionCredentials.No)]
|
||||
[TestCase(RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard)]
|
||||
public void RdGatewayPropertiesShown_WhenRDGatewayUseConnectionCredentialsIsNotYes(RdpProtocol.RDGatewayUseConnectionCredentials useConnectionCredentials)
|
||||
[TestCase(RDGatewayUseConnectionCredentials.No)]
|
||||
[TestCase(RDGatewayUseConnectionCredentials.SmartCard)]
|
||||
public void RdGatewayPropertiesShown_WhenRDGatewayUseConnectionCredentialsIsNotYes(RDGatewayUseConnectionCredentials useConnectionCredentials)
|
||||
{
|
||||
ConnectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
|
||||
ConnectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Always;
|
||||
ConnectionInfo.RDGatewayUseConnectionCredentials = useConnectionCredentials;
|
||||
ExpectedPropertyList.AddRange(new []
|
||||
{
|
||||
@@ -54,15 +54,15 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
|
||||
[Test]
|
||||
public void SoundQualityPropertyShown_WhenRdpSoundsSetToBringToThisComputer()
|
||||
{
|
||||
ConnectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer;
|
||||
ConnectionInfo.RedirectSound = RDPSounds.BringToThisComputer;
|
||||
ExpectedPropertyList.Add(nameof(mRemoteNG.Connection.ConnectionInfo.SoundQuality));
|
||||
|
||||
RunVerification();
|
||||
}
|
||||
|
||||
[TestCase(RdpProtocol.RDPResolutions.FitToWindow)]
|
||||
[TestCase(RdpProtocol.RDPResolutions.Fullscreen)]
|
||||
public void AutomaticResizePropertyShown_WhenResolutionIsDynamic(RdpProtocol.RDPResolutions resolution)
|
||||
[TestCase(RDPResolutions.FitToWindow)]
|
||||
[TestCase(RDPResolutions.Fullscreen)]
|
||||
public void AutomaticResizePropertyShown_WhenResolutionIsDynamic(RDPResolutions resolution)
|
||||
{
|
||||
ConnectionInfo.Resolution = resolution;
|
||||
ExpectedPropertyList.Add(nameof(mRemoteNG.Connection.ConnectionInfo.AutomaticResize));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
@@ -11,10 +11,10 @@ namespace mRemoteNG.App.Info
|
||||
{
|
||||
public static class GeneralAppInfo
|
||||
{
|
||||
public const string UrlHome = "https://www.mremoteng.org/";
|
||||
public const string UrlDonate = "https://mremoteng.org/contribute/";
|
||||
public const string UrlForum = "https://www.reddit.com/r/mRemoteNG/";
|
||||
public const string UrlBugs = "https://bugs.mremoteng.org/";
|
||||
public const string UrlHome = "https://www.mremoteng.org";
|
||||
public const string UrlDonate = "https://mremoteng.org/contribute";
|
||||
public const string UrlForum = "https://www.reddit.com/r/mRemoteNG";
|
||||
public const string UrlBugs = "https://bugs.mremoteng.org";
|
||||
public static string ApplicationVersion = Application.ProductVersion;
|
||||
public static readonly string ProductName = Application.ProductName;
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace mRemoteNG.App.Initialization
|
||||
var architecture = string.Empty;
|
||||
try
|
||||
{
|
||||
foreach (var o in new ManagementObjectSearcher("SELECT * FROM Win32_Processor WHERE DeviceID=\'CPU0\'")
|
||||
foreach (var o in new ManagementObjectSearcher("SELECT AddressWidth FROM Win32_Processor WHERE DeviceID=\'CPU0\'")
|
||||
.Get())
|
||||
{
|
||||
var managementObject = (ManagementObject)o;
|
||||
|
||||
@@ -32,19 +32,16 @@ namespace mRemoteNG.Config.Connections
|
||||
try
|
||||
{
|
||||
var cryptographyProvider = new CryptoProviderFactoryFromSettings().Build();
|
||||
var connectionNodeSerializer = new XmlConnectionNodeSerializer27(
|
||||
cryptographyProvider,
|
||||
connectionTreeModel
|
||||
.RootNodes.OfType<RootNodeInfo>()
|
||||
.First().PasswordString
|
||||
.ConvertToSecureString(),
|
||||
_saveFilter);
|
||||
var xmlConnectionsSerializer =
|
||||
new XmlConnectionsSerializer(cryptographyProvider, connectionNodeSerializer)
|
||||
{
|
||||
UseFullEncryption = mRemoteNG.Settings.Default.EncryptCompleteConnectionsFile
|
||||
};
|
||||
var xml = xmlConnectionsSerializer.Serialize(connectionTreeModel);
|
||||
var serializerFactory = new XmlConnectionSerializerFactory();
|
||||
|
||||
var xmlConnectionsSerializer = serializerFactory.Build(
|
||||
cryptographyProvider,
|
||||
connectionTreeModel,
|
||||
_saveFilter,
|
||||
mRemoteNG.Settings.Default.EncryptCompleteConnectionsFile);
|
||||
|
||||
var rootNode = connectionTreeModel.RootNodes.OfType<RootNodeInfo>().First();
|
||||
var xml = xmlConnectionsSerializer.Serialize(rootNode);
|
||||
|
||||
var fileDataProvider = new FileDataProviderWithRollingBackup(_connectionFileName);
|
||||
fileDataProvider.Save(xml);
|
||||
|
||||
@@ -180,21 +180,21 @@ namespace mRemoteNG.Config.Serializers.Csv
|
||||
|
||||
if (headers.Contains("RDPAuthenticationLevel"))
|
||||
{
|
||||
RdpProtocol.AuthenticationLevel value;
|
||||
AuthenticationLevel value;
|
||||
if (Enum.TryParse(connectionCsv[headers.IndexOf("RDPAuthenticationLevel")], out value))
|
||||
connectionRecord.RDPAuthenticationLevel = value;
|
||||
}
|
||||
|
||||
if (headers.Contains("Colors"))
|
||||
{
|
||||
RdpProtocol.RDPColors value;
|
||||
RDPColors value;
|
||||
if (Enum.TryParse(connectionCsv[headers.IndexOf("Colors")], out value))
|
||||
connectionRecord.Colors = value;
|
||||
}
|
||||
|
||||
if (headers.Contains("Resolution"))
|
||||
{
|
||||
RdpProtocol.RDPResolutions value;
|
||||
RDPResolutions value;
|
||||
if (Enum.TryParse(connectionCsv[headers.IndexOf("Resolution")], out value))
|
||||
connectionRecord.Resolution = value;
|
||||
}
|
||||
@@ -278,7 +278,7 @@ namespace mRemoteNG.Config.Serializers.Csv
|
||||
|
||||
if (headers.Contains("RedirectSound"))
|
||||
{
|
||||
RdpProtocol.RDPSounds value;
|
||||
RDPSounds value;
|
||||
if (Enum.TryParse(connectionCsv[headers.IndexOf("RedirectSound")], out value))
|
||||
connectionRecord.RedirectSound = value;
|
||||
}
|
||||
@@ -355,14 +355,14 @@ namespace mRemoteNG.Config.Serializers.Csv
|
||||
|
||||
if (headers.Contains("RDGatewayUsageMethod"))
|
||||
{
|
||||
RdpProtocol.RDGatewayUsageMethod value;
|
||||
RDGatewayUsageMethod value;
|
||||
if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUsageMethod")], out value))
|
||||
connectionRecord.RDGatewayUsageMethod = value;
|
||||
}
|
||||
|
||||
if (headers.Contains("RDGatewayUseConnectionCredentials"))
|
||||
{
|
||||
RdpProtocol.RDGatewayUseConnectionCredentials value;
|
||||
RDGatewayUseConnectionCredentials value;
|
||||
if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUseConnectionCredentials")], out value))
|
||||
connectionRecord.RDGatewayUseConnectionCredentials = value;
|
||||
}
|
||||
|
||||
@@ -102,15 +102,15 @@ namespace mRemoteNG.Config.Serializers.MsSql
|
||||
(IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength),
|
||||
(string)dataRow["ICAEncryptionStrength"]);
|
||||
connectionInfo.RDPAuthenticationLevel =
|
||||
(RdpProtocol.AuthenticationLevel)Enum.Parse(typeof(RdpProtocol.AuthenticationLevel),
|
||||
(AuthenticationLevel)Enum.Parse(typeof(AuthenticationLevel),
|
||||
(string)dataRow["RDPAuthenticationLevel"]);
|
||||
connectionInfo.RDPMinutesToIdleTimeout = (int)dataRow["RDPMinutesToIdleTimeout"];
|
||||
connectionInfo.RDPAlertIdleTimeout = (bool)dataRow["RDPAlertIdleTimeout"];
|
||||
connectionInfo.LoadBalanceInfo = (string)dataRow["LoadBalanceInfo"];
|
||||
connectionInfo.Colors =
|
||||
(RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors), (string)dataRow["Colors"]);
|
||||
(RDPColors)Enum.Parse(typeof(RDPColors), (string)dataRow["Colors"]);
|
||||
connectionInfo.Resolution =
|
||||
(RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions),
|
||||
(RDPResolutions)Enum.Parse(typeof(RDPResolutions),
|
||||
(string)dataRow["Resolution"]);
|
||||
connectionInfo.AutomaticResize = (bool)dataRow["AutomaticResize"];
|
||||
connectionInfo.DisplayWallpaper = (bool)dataRow["DisplayWallpaper"];
|
||||
@@ -124,8 +124,8 @@ namespace mRemoteNG.Config.Serializers.MsSql
|
||||
connectionInfo.RedirectClipboard = (bool)dataRow["RedirectClipboard"];
|
||||
connectionInfo.RedirectSmartCards = (bool)dataRow["RedirectSmartCards"];
|
||||
connectionInfo.RedirectSound =
|
||||
(RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds), (string)dataRow["RedirectSound"]);
|
||||
connectionInfo.SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality),
|
||||
(RDPSounds)Enum.Parse(typeof(RDPSounds), (string)dataRow["RedirectSound"]);
|
||||
connectionInfo.SoundQuality = (RDPSoundQuality)Enum.Parse(typeof(RDPSoundQuality),
|
||||
(string)dataRow["SoundQuality"]);
|
||||
connectionInfo.RedirectAudioCapture = (bool)dataRow["RedirectAudioCapture"];
|
||||
|
||||
@@ -154,15 +154,12 @@ namespace mRemoteNG.Config.Serializers.MsSql
|
||||
["VNCSmartSizeMode"]);
|
||||
connectionInfo.VNCViewOnly = (bool)dataRow["VNCViewOnly"];
|
||||
connectionInfo.RDGatewayUsageMethod =
|
||||
(RdpProtocol.RDGatewayUsageMethod)Enum.Parse(typeof(RdpProtocol.RDGatewayUsageMethod),
|
||||
(RDGatewayUsageMethod)Enum.Parse(typeof(RDGatewayUsageMethod),
|
||||
(string)dataRow["RDGatewayUsageMethod"]);
|
||||
connectionInfo.RDGatewayHostname = (string)dataRow["RDGatewayHostname"];
|
||||
connectionInfo.RDGatewayUseConnectionCredentials =
|
||||
(RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse(
|
||||
typeof(RdpProtocol.
|
||||
RDGatewayUseConnectionCredentials),
|
||||
(string)dataRow
|
||||
["RDGatewayUseConnectionCredentials"]);
|
||||
(RDGatewayUseConnectionCredentials)Enum.Parse(typeof(RDGatewayUseConnectionCredentials),
|
||||
(string)dataRow["RDGatewayUseConnectionCredentials"]);
|
||||
connectionInfo.RDGatewayUsername = (string)dataRow["RDGatewayUsername"];
|
||||
connectionInfo.RDGatewayPassword = DecryptValue((string)dataRow["RDGatewayPassword"]);
|
||||
connectionInfo.RDGatewayDomain = (string)dataRow["RDGatewayDomain"];
|
||||
|
||||
@@ -20,7 +20,8 @@ namespace mRemoteNG.Config.Serializers.MsSql
|
||||
.Select(m => new XElement("Node",
|
||||
new XAttribute("ConnectionId", m.ConnectionId),
|
||||
new XAttribute("Connected", m.Connected),
|
||||
new XAttribute("Expanded", m.Expanded)));
|
||||
new XAttribute("Expanded", m.Expanded),
|
||||
new XAttribute("Favorite", m.Favorite)));
|
||||
|
||||
var root = new XElement("LocalConnections", localConnections);
|
||||
var xdoc = new XDocument(new XDeclaration("1.0", "utf-8", null), root);
|
||||
@@ -40,7 +41,8 @@ namespace mRemoteNG.Config.Serializers.MsSql
|
||||
{
|
||||
ConnectionId = e.Attribute("ConnectionId")?.Value,
|
||||
Connected = bool.Parse(e.Attribute("Connected")?.Value ?? "False"),
|
||||
Expanded = bool.Parse(e.Attribute("Expanded")?.Value ?? "False")
|
||||
Expanded = bool.Parse(e.Attribute("Expanded")?.Value ?? "False"),
|
||||
Favorite = bool.Parse(e.Attribute("Favorite")?.Value ?? "False")
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
using System.Linq;
|
||||
using mRemoteNG.Connection;
|
||||
using mRemoteNG.Security;
|
||||
using mRemoteNG.Tree;
|
||||
using mRemoteNG.Tree.Root;
|
||||
|
||||
namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
public class XmlConnectionSerializerFactory
|
||||
{
|
||||
public ISerializer<ConnectionInfo, string> Build(
|
||||
ICryptographyProvider cryptographyProvider,
|
||||
ConnectionTreeModel connectionTreeModel,
|
||||
SaveFilter saveFilter = null,
|
||||
bool useFullEncryption = false)
|
||||
{
|
||||
var encryptionKey = connectionTreeModel
|
||||
.RootNodes.OfType<RootNodeInfo>()
|
||||
.First().PasswordString
|
||||
.ConvertToSecureString();
|
||||
|
||||
var connectionNodeSerializer = new XmlConnectionNodeSerializer27(
|
||||
cryptographyProvider,
|
||||
encryptionKey,
|
||||
saveFilter ?? new SaveFilter());
|
||||
|
||||
return new XmlConnectionsSerializer(cryptographyProvider, connectionNodeSerializer)
|
||||
{
|
||||
UseFullEncryption = useFullEncryption
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -226,8 +226,8 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
if (_confVersion < 1.1) //1.0 - 0.1
|
||||
{
|
||||
connectionInfo.Resolution = xmlnode.GetAttributeAsBool("Fullscreen")
|
||||
? RdpProtocol.RDPResolutions.Fullscreen
|
||||
: RdpProtocol.RDPResolutions.FitToWindow;
|
||||
? RDPResolutions.Fullscreen
|
||||
: RDPResolutions.FitToWindow;
|
||||
}
|
||||
|
||||
if (!Runtime.UseCredentialManager || _confVersion <= 2.6) // 0.2 - 2.6
|
||||
@@ -318,9 +318,9 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
|
||||
if (_confVersion >= 1.3)
|
||||
{
|
||||
connectionInfo.Colors = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPColors>("Colors");
|
||||
connectionInfo.Resolution = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPResolutions>("Resolution");
|
||||
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
|
||||
connectionInfo.Colors = xmlnode.GetAttributeAsEnum<RDPColors>("Colors");
|
||||
connectionInfo.Resolution = xmlnode.GetAttributeAsEnum<RDPResolutions>("Resolution");
|
||||
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RDPSounds>("RedirectSound");
|
||||
connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
|
||||
}
|
||||
else
|
||||
@@ -328,25 +328,25 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
switch (xmlnode.GetAttributeAsInt("Colors"))
|
||||
{
|
||||
case 0:
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors256;
|
||||
connectionInfo.Colors = RDPColors.Colors256;
|
||||
break;
|
||||
case 1:
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors16Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors16Bit;
|
||||
break;
|
||||
case 2:
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors24Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors24Bit;
|
||||
break;
|
||||
case 3:
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors32Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors32Bit;
|
||||
break;
|
||||
// ReSharper disable once RedundantCaseLabel
|
||||
case 4:
|
||||
default:
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors15Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors15Bit;
|
||||
break;
|
||||
}
|
||||
|
||||
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
|
||||
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RDPSounds>("RedirectSound");
|
||||
connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
|
||||
}
|
||||
|
||||
@@ -442,7 +442,7 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
if (_confVersion >= 1.8)
|
||||
{
|
||||
connectionInfo.RDPAuthenticationLevel =
|
||||
xmlnode.GetAttributeAsEnum<RdpProtocol.AuthenticationLevel>("RDPAuthenticationLevel");
|
||||
xmlnode.GetAttributeAsEnum<AuthenticationLevel>("RDPAuthenticationLevel");
|
||||
connectionInfo.Inheritance.RDPAuthenticationLevel =
|
||||
xmlnode.GetAttributeAsBool("InheritRDPAuthenticationLevel");
|
||||
}
|
||||
@@ -472,10 +472,10 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
// Get settings
|
||||
connectionInfo.RDGatewayUsageMethod =
|
||||
xmlnode.GetAttributeAsEnum<RdpProtocol.RDGatewayUsageMethod>("RDGatewayUsageMethod");
|
||||
xmlnode.GetAttributeAsEnum<RDGatewayUsageMethod>("RDGatewayUsageMethod");
|
||||
connectionInfo.RDGatewayHostname = xmlnode.GetAttributeAsString("RDGatewayHostname");
|
||||
connectionInfo.RDGatewayUseConnectionCredentials =
|
||||
xmlnode.GetAttributeAsEnum<RdpProtocol.RDGatewayUseConnectionCredentials>(
|
||||
xmlnode.GetAttributeAsEnum<RDGatewayUseConnectionCredentials>(
|
||||
"RDGatewayUseConnectionCredentials");
|
||||
connectionInfo.RDGatewayUsername = xmlnode.GetAttributeAsString("RDGatewayUsername");
|
||||
connectionInfo.RDGatewayPassword =
|
||||
@@ -526,7 +526,7 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
if (_confVersion >= 2.6)
|
||||
{
|
||||
connectionInfo.SoundQuality =
|
||||
xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSoundQuality>("SoundQuality");
|
||||
xmlnode.GetAttributeAsEnum<RDPSoundQuality>("SoundQuality");
|
||||
connectionInfo.Inheritance.SoundQuality = xmlnode.GetAttributeAsBool("InheritSoundQuality");
|
||||
connectionInfo.RDPMinutesToIdleTimeout = xmlnode.GetAttributeAsInt("RDPMinutesToIdleTimeout");
|
||||
connectionInfo.Inheritance.RDPMinutesToIdleTimeout =
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
|
||||
var serializationTargetAsContainer = serializationTarget as ContainerInfo;
|
||||
if (serializationTargetAsContainer == null) return;
|
||||
foreach (var child in serializationTargetAsContainer.Children)
|
||||
foreach (var child in serializationTargetAsContainer.Children.ToArray())
|
||||
CompileRecursive(child, newElement);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,19 +60,19 @@ namespace mRemoteNG.Config.Serializers
|
||||
switch (value)
|
||||
{
|
||||
case "8":
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors256;
|
||||
connectionInfo.Colors = RDPColors.Colors256;
|
||||
break;
|
||||
case "15":
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors15Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors15Bit;
|
||||
break;
|
||||
case "16":
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors16Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors16Bit;
|
||||
break;
|
||||
case "24":
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors24Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors24Bit;
|
||||
break;
|
||||
case "32":
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors32Bit;
|
||||
connectionInfo.Colors = RDPColors.Colors32Bit;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -81,8 +81,8 @@ namespace mRemoteNG.Config.Serializers
|
||||
break;
|
||||
case "screen mode id":
|
||||
connectionInfo.Resolution = value == "2"
|
||||
? RdpProtocol.RDPResolutions.Fullscreen
|
||||
: RdpProtocol.RDPResolutions.FitToWindow;
|
||||
? RDPResolutions.Fullscreen
|
||||
: RDPResolutions.FitToWindow;
|
||||
break;
|
||||
case "connect to console":
|
||||
connectionInfo.UseConsoleSession = value == "1";
|
||||
@@ -118,13 +118,13 @@ namespace mRemoteNG.Config.Serializers
|
||||
switch (value)
|
||||
{
|
||||
case "0":
|
||||
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer;
|
||||
connectionInfo.RedirectSound = RDPSounds.BringToThisComputer;
|
||||
break;
|
||||
case "1":
|
||||
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer;
|
||||
connectionInfo.RedirectSound = RDPSounds.LeaveAtRemoteComputer;
|
||||
break;
|
||||
case "2":
|
||||
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
|
||||
connectionInfo.RedirectSound = RDPSounds.DoNotPlay;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -138,13 +138,13 @@ namespace mRemoteNG.Config.Serializers
|
||||
switch (value)
|
||||
{
|
||||
case "0":
|
||||
connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Never;
|
||||
connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Never;
|
||||
break;
|
||||
case "1":
|
||||
connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always;
|
||||
connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Always;
|
||||
break;
|
||||
case "2":
|
||||
connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Detect;
|
||||
connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Detect;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -199,8 +199,8 @@ namespace mRemoteNG.Config.Serializers
|
||||
{
|
||||
connectionInfo.RDGatewayUsageMethod =
|
||||
gatewaySettingsNode.SelectSingleNode("./enabled")?.InnerText == "True"
|
||||
? RdpProtocol.RDGatewayUsageMethod.Always
|
||||
: RdpProtocol.RDGatewayUsageMethod.Never;
|
||||
? RDGatewayUsageMethod.Always
|
||||
: RDGatewayUsageMethod.Never;
|
||||
connectionInfo.RDGatewayHostname = gatewaySettingsNode.SelectSingleNode("./hostName")?.InnerText ?? string.Empty;
|
||||
connectionInfo.RDGatewayUsername = gatewaySettingsNode.SelectSingleNode("./userName")?.InnerText ?? string.Empty;
|
||||
|
||||
@@ -227,21 +227,21 @@ namespace mRemoteNG.Config.Serializers
|
||||
if (remoteDesktopNode?.Attributes?["inherit"]?.Value == "None")
|
||||
{
|
||||
connectionInfo.Resolution =
|
||||
Enum.TryParse<RdpProtocol.RDPResolutions>(remoteDesktopNode.SelectSingleNode("./size")?.InnerText.Replace(" ", ""), true, out var rdpResolution)
|
||||
Enum.TryParse<RDPResolutions>(remoteDesktopNode.SelectSingleNode("./size")?.InnerText.Replace(" ", ""), true, out var rdpResolution)
|
||||
? rdpResolution
|
||||
: RdpProtocol.RDPResolutions.FitToWindow;
|
||||
: RDPResolutions.FitToWindow;
|
||||
|
||||
if (remoteDesktopNode.SelectSingleNode("./sameSizeAsClientArea")?.InnerText == "True")
|
||||
{
|
||||
connectionInfo.Resolution = RdpProtocol.RDPResolutions.FitToWindow;
|
||||
connectionInfo.Resolution = RDPResolutions.FitToWindow;
|
||||
}
|
||||
|
||||
if (remoteDesktopNode.SelectSingleNode("./fullScreen")?.InnerText == "True")
|
||||
{
|
||||
connectionInfo.Resolution = RdpProtocol.RDPResolutions.Fullscreen;
|
||||
connectionInfo.Resolution = RDPResolutions.Fullscreen;
|
||||
}
|
||||
|
||||
if (Enum.TryParse<RdpProtocol.RDPColors>(remoteDesktopNode.SelectSingleNode("./colorDepth")?.InnerText, true, out var rdpColors))
|
||||
if (Enum.TryParse<RDPColors>(remoteDesktopNode.SelectSingleNode("./colorDepth")?.InnerText, true, out var rdpColors))
|
||||
connectionInfo.Colors = rdpColors;
|
||||
}
|
||||
else
|
||||
@@ -258,15 +258,15 @@ namespace mRemoteNG.Config.Serializers
|
||||
{
|
||||
case "0": // Bring to this computer
|
||||
case "Client":
|
||||
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer;
|
||||
connectionInfo.RedirectSound = RDPSounds.BringToThisComputer;
|
||||
break;
|
||||
case "1": // Leave at remote computer
|
||||
case "Remote":
|
||||
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer;
|
||||
connectionInfo.RedirectSound = RDPSounds.LeaveAtRemoteComputer;
|
||||
break;
|
||||
case "2": // Do not play
|
||||
case "NoSound":
|
||||
connectionInfo.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay;
|
||||
connectionInfo.RedirectSound = RDPSounds.DoNotPlay;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -325,15 +325,15 @@ namespace mRemoteNG.Config.Serializers
|
||||
{
|
||||
case "0": // No authentication
|
||||
case "None":
|
||||
connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.NoAuth;
|
||||
connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.NoAuth;
|
||||
break;
|
||||
case "1": // Do not connect if authentication fails
|
||||
case "Required":
|
||||
connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.AuthRequired;
|
||||
connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.AuthRequired;
|
||||
break;
|
||||
case "2": // Warn if authentication fails
|
||||
case "Warn":
|
||||
connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth;
|
||||
connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.WarnOnFailedAuth;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace mRemoteNG.Connection
|
||||
private string _puttySession;
|
||||
private IcaProtocol.EncryptionStrength _icaEncryption;
|
||||
private bool _useConsoleSession;
|
||||
private RdpProtocol.AuthenticationLevel _rdpAuthenticationLevel;
|
||||
private AuthenticationLevel _rdpAuthenticationLevel;
|
||||
private int _rdpMinutesToIdleTimeout;
|
||||
private bool _rdpAlertIdleTimeout;
|
||||
private string _loadBalanceInfo;
|
||||
@@ -40,16 +40,16 @@ namespace mRemoteNG.Connection
|
||||
private bool _useCredSsp;
|
||||
private bool _useVmId;
|
||||
|
||||
private RdpProtocol.RDGatewayUsageMethod _rdGatewayUsageMethod;
|
||||
private RDGatewayUsageMethod _rdGatewayUsageMethod;
|
||||
private string _rdGatewayHostname;
|
||||
private RdpProtocol.RDGatewayUseConnectionCredentials _rdGatewayUseConnectionCredentials;
|
||||
private RDGatewayUseConnectionCredentials _rdGatewayUseConnectionCredentials;
|
||||
private string _rdGatewayUsername;
|
||||
private string _rdGatewayPassword;
|
||||
private string _rdGatewayDomain;
|
||||
|
||||
private RdpProtocol.RDPResolutions _resolution;
|
||||
private RDPResolutions _resolution;
|
||||
private bool _automaticResize;
|
||||
private RdpProtocol.RDPColors _colors;
|
||||
private RDPColors _colors;
|
||||
private bool _cacheBitmaps;
|
||||
private bool _displayWallpaper;
|
||||
private bool _displayThemes;
|
||||
@@ -62,8 +62,8 @@ namespace mRemoteNG.Connection
|
||||
private bool _redirectClipboard;
|
||||
private bool _redirectPorts;
|
||||
private bool _redirectSmartCards;
|
||||
private RdpProtocol.RDPSounds _redirectSound;
|
||||
private RdpProtocol.RDPSoundQuality _soundQuality;
|
||||
private RDPSounds _redirectSound;
|
||||
private RDPSoundQuality _soundQuality;
|
||||
private bool _redirectAudioCapture;
|
||||
|
||||
private string _preExtApp;
|
||||
@@ -256,7 +256,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionAuthenticationLevel"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP)]
|
||||
public RdpProtocol.AuthenticationLevel RDPAuthenticationLevel
|
||||
public AuthenticationLevel RDPAuthenticationLevel
|
||||
{
|
||||
get => GetPropertyValue("RDPAuthenticationLevel", _rdpAuthenticationLevel);
|
||||
set => SetField(ref _rdpAuthenticationLevel, value, "RDPAuthenticationLevel");
|
||||
@@ -341,7 +341,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRDGatewayUsageMethod"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP)]
|
||||
public RdpProtocol.RDGatewayUsageMethod RDGatewayUsageMethod
|
||||
public RDGatewayUsageMethod RDGatewayUsageMethod
|
||||
{
|
||||
get => GetPropertyValue("RDGatewayUsageMethod", _rdGatewayUsageMethod);
|
||||
set => SetField(ref _rdGatewayUsageMethod, value, "RDGatewayUsageMethod");
|
||||
@@ -362,7 +362,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRDGatewayUseConnectionCredentials"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP)]
|
||||
public RdpProtocol.RDGatewayUseConnectionCredentials RDGatewayUseConnectionCredentials
|
||||
public RDGatewayUseConnectionCredentials RDGatewayUseConnectionCredentials
|
||||
{
|
||||
get => GetPropertyValue("RDGatewayUseConnectionCredentials", _rdGatewayUseConnectionCredentials);
|
||||
set => SetField(ref _rdGatewayUseConnectionCredentials, value, "RDGatewayUseConnectionCredentials");
|
||||
@@ -408,7 +408,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionResolution"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP, ProtocolType.ICA)]
|
||||
public RdpProtocol.RDPResolutions Resolution
|
||||
public RDPResolutions Resolution
|
||||
{
|
||||
get => GetPropertyValue("Resolution", _resolution);
|
||||
set => SetField(ref _resolution, value, "Resolution");
|
||||
@@ -430,7 +430,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionColors"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP, ProtocolType.ICA)]
|
||||
public RdpProtocol.RDPColors Colors
|
||||
public RDPColors Colors
|
||||
{
|
||||
get => GetPropertyValue("Colors", _colors);
|
||||
set => SetField(ref _colors, value, "Colors");
|
||||
@@ -567,7 +567,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRedirectSounds"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP)]
|
||||
public RdpProtocol.RDPSounds RedirectSound
|
||||
public RDPSounds RedirectSound
|
||||
{
|
||||
get => GetPropertyValue("RedirectSound", _redirectSound);
|
||||
set => SetField(ref _redirectSound, value, "RedirectSound");
|
||||
@@ -578,7 +578,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionSoundQuality"),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
UsedInProtocol(ProtocolType.RDP)]
|
||||
public RdpProtocol.RDPSoundQuality SoundQuality
|
||||
public RDPSoundQuality SoundQuality
|
||||
{
|
||||
get => GetPropertyValue("SoundQuality", _soundQuality);
|
||||
set => SetField(ref _soundQuality, value, "SoundQuality");
|
||||
|
||||
@@ -297,11 +297,11 @@ namespace mRemoteNG.Connection
|
||||
ExtApp = Settings.Default.ConDefaultExtApp;
|
||||
Port = 0;
|
||||
PuttySession = Settings.Default.ConDefaultPuttySession;
|
||||
ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength),
|
||||
Settings.Default.ConDefaultICAEncryptionStrength);
|
||||
ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(
|
||||
typeof(IcaProtocol.EncryptionStrength), Settings.Default.ConDefaultICAEncryptionStrength);
|
||||
UseConsoleSession = Settings.Default.ConDefaultUseConsoleSession;
|
||||
RDPAuthenticationLevel = (RdpProtocol.AuthenticationLevel)Enum.Parse(typeof(RdpProtocol.AuthenticationLevel),
|
||||
Settings.Default.ConDefaultRDPAuthenticationLevel);
|
||||
RDPAuthenticationLevel = (AuthenticationLevel)Enum.Parse(
|
||||
typeof(AuthenticationLevel), Settings.Default.ConDefaultRDPAuthenticationLevel);
|
||||
RDPMinutesToIdleTimeout = Settings.Default.ConDefaultRDPMinutesToIdleTimeout;
|
||||
RDPAlertIdleTimeout = Settings.Default.ConDefaultRDPAlertIdleTimeout;
|
||||
LoadBalanceInfo = Settings.Default.ConDefaultLoadBalanceInfo;
|
||||
@@ -313,11 +313,11 @@ namespace mRemoteNG.Connection
|
||||
|
||||
private void SetRdGatewayDefaults()
|
||||
{
|
||||
RDGatewayUsageMethod = (RdpProtocol.RDGatewayUsageMethod)Enum.Parse(typeof(RdpProtocol.RDGatewayUsageMethod),
|
||||
Settings.Default.ConDefaultRDGatewayUsageMethod);
|
||||
RDGatewayUsageMethod = (RDGatewayUsageMethod)Enum.Parse(
|
||||
typeof(RDGatewayUsageMethod), Settings.Default.ConDefaultRDGatewayUsageMethod);
|
||||
RDGatewayHostname = Settings.Default.ConDefaultRDGatewayHostname;
|
||||
RDGatewayUseConnectionCredentials = (RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse(typeof(RdpProtocol.RDGatewayUseConnectionCredentials),
|
||||
Settings.Default.ConDefaultRDGatewayUseConnectionCredentials);
|
||||
RDGatewayUseConnectionCredentials = (RDGatewayUseConnectionCredentials)Enum.Parse(
|
||||
typeof(RDGatewayUseConnectionCredentials), Settings.Default.ConDefaultRDGatewayUseConnectionCredentials);
|
||||
RDGatewayUsername = Settings.Default.ConDefaultRDGatewayUsername;
|
||||
RDGatewayPassword = Settings.Default.ConDefaultRDGatewayPassword;
|
||||
RDGatewayDomain = Settings.Default.ConDefaultRDGatewayDomain;
|
||||
@@ -325,11 +325,10 @@ namespace mRemoteNG.Connection
|
||||
|
||||
private void SetAppearanceDefaults()
|
||||
{
|
||||
Resolution = (RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions),
|
||||
Settings.Default.ConDefaultResolution);
|
||||
Resolution = (RDPResolutions)Enum.Parse(
|
||||
typeof(RDPResolutions), Settings.Default.ConDefaultResolution);
|
||||
AutomaticResize = Settings.Default.ConDefaultAutomaticResize;
|
||||
Colors = (RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors),
|
||||
Settings.Default.ConDefaultColors);
|
||||
Colors = (RDPColors)Enum.Parse(typeof(RDPColors), Settings.Default.ConDefaultColors);
|
||||
CacheBitmaps = Settings.Default.ConDefaultCacheBitmaps;
|
||||
DisplayWallpaper = Settings.Default.ConDefaultDisplayWallpaper;
|
||||
DisplayThemes = Settings.Default.ConDefaultDisplayThemes;
|
||||
@@ -345,9 +344,9 @@ namespace mRemoteNG.Connection
|
||||
RedirectClipboard = Settings.Default.ConDefaultRedirectClipboard;
|
||||
RedirectPorts = Settings.Default.ConDefaultRedirectPorts;
|
||||
RedirectSmartCards = Settings.Default.ConDefaultRedirectSmartCards;
|
||||
RedirectSound = (RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds),
|
||||
RedirectSound = (RDPSounds)Enum.Parse(typeof(RDPSounds),
|
||||
Settings.Default.ConDefaultRedirectSound);
|
||||
SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality),
|
||||
SoundQuality = (RDPSoundQuality)Enum.Parse(typeof(RDPSoundQuality),
|
||||
Settings.Default.ConDefaultSoundQuality);
|
||||
RedirectAudioCapture = Settings.Default.ConDefaultRedirectAudioCapture;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ using mRemoteNG.App;
|
||||
using mRemoteNG.Connection.Protocol;
|
||||
using mRemoteNG.Container;
|
||||
using mRemoteNG.Messages;
|
||||
using mRemoteNG.Tools;
|
||||
using mRemoteNG.UI.Forms;
|
||||
using mRemoteNG.UI.Panels;
|
||||
using mRemoteNG.UI.Tabs;
|
||||
@@ -21,35 +22,6 @@ namespace mRemoteNG.Connection
|
||||
|
||||
public IEnumerable<string> ActiveConnections => _activeConnections;
|
||||
|
||||
public void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None)
|
||||
{
|
||||
OpenConnection(containerInfo, force, null);
|
||||
}
|
||||
|
||||
public void OpenConnection(ConnectionInfo connectionInfo)
|
||||
{
|
||||
try
|
||||
{
|
||||
OpenConnection(connectionInfo, ConnectionInfo.Force.None);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionStackTrace(Language.strConnectionOpenFailed, ex);
|
||||
}
|
||||
}
|
||||
|
||||
public void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force)
|
||||
{
|
||||
try
|
||||
{
|
||||
OpenConnection(connectionInfo, force, null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddExceptionStackTrace(Language.strConnectionOpenFailed, ex);
|
||||
}
|
||||
}
|
||||
|
||||
public bool SwitchToOpenConnection(ConnectionInfo connectionInfo)
|
||||
{
|
||||
var interfaceControl = FindConnectionContainer(connectionInfo);
|
||||
@@ -61,13 +33,15 @@ namespace mRemoteNG.Connection
|
||||
return true;
|
||||
}
|
||||
|
||||
#region Private
|
||||
|
||||
private void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force, ConnectionWindow conForm)
|
||||
public void OpenConnection(
|
||||
ContainerInfo containerInfo,
|
||||
ConnectionInfo.Force force = ConnectionInfo.Force.None,
|
||||
ConnectionWindow conForm = null)
|
||||
{
|
||||
var children = containerInfo.Children;
|
||||
if (children.Count == 0) return;
|
||||
foreach (var child in children)
|
||||
if (containerInfo == null || containerInfo.Children.Count == 0)
|
||||
return;
|
||||
|
||||
foreach (var child in containerInfo.Children)
|
||||
{
|
||||
if (child is ContainerInfo childAsContainer)
|
||||
OpenConnection(childAsContainer, force, conForm);
|
||||
@@ -76,8 +50,14 @@ namespace mRemoteNG.Connection
|
||||
}
|
||||
}
|
||||
|
||||
private void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, ConnectionWindow conForm)
|
||||
public void OpenConnection(
|
||||
ConnectionInfo connectionInfo,
|
||||
ConnectionInfo.Force force = ConnectionInfo.Force.None,
|
||||
ConnectionWindow conForm = null)
|
||||
{
|
||||
if (connectionInfo == null)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
if (connectionInfo.Hostname == "" && connectionInfo.Protocol != ProtocolType.IntApp)
|
||||
@@ -130,6 +110,7 @@ namespace mRemoteNG.Connection
|
||||
}
|
||||
}
|
||||
|
||||
#region Private
|
||||
private static void StartPreConnectionExternalApp(ConnectionInfo connectionInfo)
|
||||
{
|
||||
if (connectionInfo.PreExtApp == "") return;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using mRemoteNG.Container;
|
||||
using mRemoteNG.UI.Window;
|
||||
|
||||
namespace mRemoteNG.Connection
|
||||
{
|
||||
@@ -7,11 +8,15 @@ namespace mRemoteNG.Connection
|
||||
{
|
||||
IEnumerable<string> ActiveConnections { get; }
|
||||
|
||||
void OpenConnection(ConnectionInfo connectionInfo);
|
||||
void OpenConnection(
|
||||
ContainerInfo containerInfo,
|
||||
ConnectionInfo.Force force = ConnectionInfo.Force.None,
|
||||
ConnectionWindow conForm = null);
|
||||
|
||||
void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None);
|
||||
|
||||
void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force);
|
||||
void OpenConnection(
|
||||
ConnectionInfo connectionInfo,
|
||||
ConnectionInfo.Force force = ConnectionInfo.Force.None,
|
||||
ConnectionWindow conForm = null);
|
||||
|
||||
bool SwitchToOpenConnection(ConnectionInfo connectionInfo);
|
||||
}
|
||||
|
||||
@@ -201,17 +201,17 @@ namespace mRemoteNG.Connection.Protocol.ICA
|
||||
return;
|
||||
}
|
||||
|
||||
if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.FitToWindow)
|
||||
if (InterfaceControl.Info.Resolution == RDPResolutions.FitToWindow)
|
||||
{
|
||||
_icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, InterfaceControl.Size.Width,
|
||||
InterfaceControl.Size.Height, 0);
|
||||
}
|
||||
else if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.SmartSize)
|
||||
else if (InterfaceControl.Info.Resolution == RDPResolutions.SmartSize)
|
||||
{
|
||||
_icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, InterfaceControl.Size.Width,
|
||||
InterfaceControl.Size.Height, 0);
|
||||
}
|
||||
else if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.Fullscreen)
|
||||
else if (InterfaceControl.Info.Resolution == RDPResolutions.Fullscreen)
|
||||
{
|
||||
_icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient,
|
||||
Screen.FromControl(_frmMain).Bounds.Width,
|
||||
@@ -238,13 +238,13 @@ namespace mRemoteNG.Connection.Protocol.ICA
|
||||
// ReSharper disable once SwitchStatementMissingSomeCases
|
||||
switch (_info.Colors)
|
||||
{
|
||||
case RdpProtocol.RDPColors.Colors256:
|
||||
case RDPColors.Colors256:
|
||||
_icaClient.SetProp("DesiredColor", "2");
|
||||
break;
|
||||
case RdpProtocol.RDPColors.Colors15Bit:
|
||||
case RDPColors.Colors15Bit:
|
||||
_icaClient.SetProp("DesiredColor", "4");
|
||||
break;
|
||||
case RdpProtocol.RDPColors.Colors16Bit:
|
||||
case RDPColors.Colors16Bit:
|
||||
_icaClient.SetProp("DesiredColor", "4");
|
||||
break;
|
||||
default:
|
||||
|
||||
16
mRemoteV1/Connection/Protocol/RDP/AuthenticationLevel.cs
Normal file
16
mRemoteV1/Connection/Protocol/RDP/AuthenticationLevel.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum AuthenticationLevel
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strAlwaysConnectEvenIfAuthFails")]
|
||||
NoAuth = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strDontConnectWhenAuthFails")]
|
||||
AuthRequired = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strWarnIfAuthFails")]
|
||||
WarnOnFailedAuth = 2
|
||||
}
|
||||
}
|
||||
16
mRemoteV1/Connection/Protocol/RDP/RDGatewayUsageMethod.cs
Normal file
16
mRemoteV1/Connection/Protocol/RDP/RDGatewayUsageMethod.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDGatewayUsageMethod
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strNever")]
|
||||
Never = 0, // TSC_PROXY_MODE_NONE_DIRECT
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strAlways")]
|
||||
Always = 1, // TSC_PROXY_MODE_DIRECT
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strDetect")]
|
||||
Detect = 2 // TSC_PROXY_MODE_DETECT
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDGatewayUseConnectionCredentials
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strUseDifferentUsernameAndPassword")]
|
||||
No = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strUseSameUsernameAndPassword")]
|
||||
Yes = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strUseSmartCard")]
|
||||
SmartCard = 2
|
||||
}
|
||||
}
|
||||
22
mRemoteV1/Connection/Protocol/RDP/RDPColors.cs
Normal file
22
mRemoteV1/Connection/Protocol/RDP/RDPColors.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDPColors
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP256Colors")]
|
||||
Colors256 = 8,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP32768Colors")]
|
||||
Colors15Bit = 15,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP65536Colors")]
|
||||
Colors16Bit = 16,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP16777216Colors")]
|
||||
Colors24Bit = 24,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP4294967296Colors")]
|
||||
Colors32Bit = 32
|
||||
}
|
||||
}
|
||||
22
mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
Normal file
22
mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDPPerformanceFlags
|
||||
{
|
||||
[Description("strRDPDisableWallpaper")]
|
||||
DisableWallpaper = 0x1,
|
||||
|
||||
// [Description("strRDPDisableFullWindowdrag")]DisableFullWindowDrag = 0x2,
|
||||
// [Description("strRDPDisableMenuAnimations")]DisableMenuAnimations = 0x4,
|
||||
[Description("strRDPDisableThemes")] DisableThemes = 0x8,
|
||||
|
||||
// [Description("strRDPDisableCursorShadow")]DisableCursorShadow = 0x20,
|
||||
// [Description("strRDPDisableCursorblinking")]DisableCursorBlinking = 0x40,
|
||||
[Description("strRDPEnableFontSmoothing")]
|
||||
EnableFontSmoothing = 0x80,
|
||||
|
||||
[Description("strRDPEnableDesktopComposition")]
|
||||
EnableDesktopComposition = 0x100
|
||||
}
|
||||
}
|
||||
34
mRemoteV1/Connection/Protocol/RDP/RDPResolutions.cs
Normal file
34
mRemoteV1/Connection/Protocol/RDP/RDPResolutions.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System.ComponentModel;
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDPResolutions
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPFitToPanel")]
|
||||
FitToWindow,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strFullscreen")]
|
||||
Fullscreen,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSmartSize")]
|
||||
SmartSize,
|
||||
[Description("800x600")] Res800x600,
|
||||
[Description("1024x768")] Res1024x768,
|
||||
[Description("1152x864")] Res1152x864,
|
||||
[Description("1280x800")] Res1280x800,
|
||||
[Description("1280x1024")] Res1280x1024,
|
||||
[Description("1366x768")] Res1366x768,
|
||||
[Description("1440x900")] Res1440x900,
|
||||
[Description("1600x900")] Res1600x900,
|
||||
[Description("1600x1200")] Res1600x1200,
|
||||
[Description("1680x1050")] Res1680x1050,
|
||||
[Description("1920x1080")] Res1920x1080,
|
||||
[Description("1920x1200")] Res1920x1200,
|
||||
[Description("2048x1536")] Res2048x1536,
|
||||
[Description("2560x1440")] Res2560x1440,
|
||||
[Description("2560x1600")] Res2560x1600,
|
||||
[Description("2560x2048")] Res2560x2048,
|
||||
[Description("3840x2160")] Res3840x2160
|
||||
}
|
||||
}
|
||||
16
mRemoteV1/Connection/Protocol/RDP/RDPSoundQuality.cs
Normal file
16
mRemoteV1/Connection/Protocol/RDP/RDPSoundQuality.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDPSoundQuality
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityDynamic")]
|
||||
Dynamic = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityMedium")]
|
||||
Medium = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityHigh")]
|
||||
High = 2
|
||||
}
|
||||
}
|
||||
16
mRemoteV1/Connection/Protocol/RDP/RDPSounds.cs
Normal file
16
mRemoteV1/Connection/Protocol/RDP/RDPSounds.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using mRemoteNG.Tools;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public enum RDPSounds
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundBringToThisComputer")]
|
||||
BringToThisComputer = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")]
|
||||
LeaveAtRemoteComputer = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundDoNotPlay")]
|
||||
DoNotPlay = 2
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Threading;
|
||||
@@ -15,7 +14,7 @@ using MSTSCLib;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.RDP
|
||||
{
|
||||
public class RdpProtocol : ProtocolBase, ISupportsViewOnly
|
||||
public partial class RdpProtocol : ProtocolBase, ISupportsViewOnly
|
||||
{
|
||||
/* RDP v8 requires Windows 7 with:
|
||||
* https://support.microsoft.com/en-us/kb/2592687
|
||||
@@ -828,131 +827,6 @@ namespace mRemoteNG.Connection.Protocol.RDP
|
||||
Port = 3389
|
||||
}
|
||||
|
||||
public enum RDPColors
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP256Colors")]
|
||||
Colors256 = 8,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP32768Colors")]
|
||||
Colors15Bit = 15,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP65536Colors")]
|
||||
Colors16Bit = 16,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP16777216Colors")]
|
||||
Colors24Bit = 24,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDP4294967296Colors")]
|
||||
Colors32Bit = 32
|
||||
}
|
||||
|
||||
public enum RDPSounds
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundBringToThisComputer")]
|
||||
BringToThisComputer = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")]
|
||||
LeaveAtRemoteComputer = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundDoNotPlay")]
|
||||
DoNotPlay = 2
|
||||
}
|
||||
|
||||
public enum RDPSoundQuality
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityDynamic")]
|
||||
Dynamic = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityMedium")]
|
||||
Medium = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSoundQualityHigh")]
|
||||
High = 2
|
||||
}
|
||||
|
||||
private enum RDPPerformanceFlags
|
||||
{
|
||||
[Description("strRDPDisableWallpaper")]
|
||||
DisableWallpaper = 0x1,
|
||||
|
||||
// [Description("strRDPDisableFullWindowdrag")]DisableFullWindowDrag = 0x2,
|
||||
// [Description("strRDPDisableMenuAnimations")]DisableMenuAnimations = 0x4,
|
||||
[Description("strRDPDisableThemes")] DisableThemes = 0x8,
|
||||
|
||||
// [Description("strRDPDisableCursorShadow")]DisableCursorShadow = 0x20,
|
||||
// [Description("strRDPDisableCursorblinking")]DisableCursorBlinking = 0x40,
|
||||
[Description("strRDPEnableFontSmoothing")]
|
||||
EnableFontSmoothing = 0x80,
|
||||
|
||||
[Description("strRDPEnableDesktopComposition")]
|
||||
EnableDesktopComposition = 0x100
|
||||
}
|
||||
|
||||
public enum RDPResolutions
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPFitToPanel")]
|
||||
FitToWindow,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strFullscreen")]
|
||||
Fullscreen,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strRDPSmartSize")]
|
||||
SmartSize,
|
||||
[Description("800x600")] Res800x600,
|
||||
[Description("1024x768")] Res1024x768,
|
||||
[Description("1152x864")] Res1152x864,
|
||||
[Description("1280x800")] Res1280x800,
|
||||
[Description("1280x1024")] Res1280x1024,
|
||||
[Description("1366x768")] Res1366x768,
|
||||
[Description("1440x900")] Res1440x900,
|
||||
[Description("1600x900")] Res1600x900,
|
||||
[Description("1600x1200")] Res1600x1200,
|
||||
[Description("1680x1050")] Res1680x1050,
|
||||
[Description("1920x1080")] Res1920x1080,
|
||||
[Description("1920x1200")] Res1920x1200,
|
||||
[Description("2048x1536")] Res2048x1536,
|
||||
[Description("2560x1440")] Res2560x1440,
|
||||
[Description("2560x1600")] Res2560x1600,
|
||||
[Description("2560x2048")] Res2560x2048,
|
||||
[Description("3840x2160")] Res3840x2160
|
||||
}
|
||||
|
||||
public enum AuthenticationLevel
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strAlwaysConnectEvenIfAuthFails")]
|
||||
NoAuth = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strDontConnectWhenAuthFails")]
|
||||
AuthRequired = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strWarnIfAuthFails")]
|
||||
WarnOnFailedAuth = 2
|
||||
}
|
||||
|
||||
public enum RDGatewayUsageMethod
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strNever")]
|
||||
Never = 0, // TSC_PROXY_MODE_NONE_DIRECT
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strAlways")]
|
||||
Always = 1, // TSC_PROXY_MODE_DIRECT
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strDetect")]
|
||||
Detect = 2 // TSC_PROXY_MODE_DETECT
|
||||
}
|
||||
|
||||
public enum RDGatewayUseConnectionCredentials
|
||||
{
|
||||
[LocalizedAttributes.LocalizedDescription("strUseDifferentUsernameAndPassword")]
|
||||
No = 0,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strUseSameUsernameAndPassword")]
|
||||
Yes = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription("strUseSmartCard")]
|
||||
SmartCard = 2
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Resolution
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
**************************
|
||||
**************************
|
||||
Frequently Asked Questions
|
||||
**************************
|
||||
|
||||
@@ -12,7 +12,7 @@ You sometimes see PuTTY icons on the side of the terminal (example below).
|
||||
This is a new security feature in PuTTY 0.71. It is meant to signify that PuTTY itself is outputting those lines and not some remote server.
|
||||
Full details are available `here <https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-auth-prompt-spoofing.html>`_.
|
||||
|
||||
How can I edit or creat connections in bulk?
|
||||
How can I edit or create connections in bulk?
|
||||
============================================
|
||||
|
||||
Currently, mRemoteNG does not have a feature to support editing or creating connections in bulk. See :ref:`bulk_connections` for more info on this.
|
||||
|
||||
155
mRemoteV1/Documentation/mssql_db_setup.sql
Normal file
155
mRemoteV1/Documentation/mssql_db_setup.sql
Normal file
@@ -0,0 +1,155 @@
|
||||
if exists (select * from dbo.sysobjects
|
||||
where id = object_id(N'[dbo].[tblCons]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||||
drop table [dbo].[tblCons]
|
||||
GO
|
||||
|
||||
if exists (select * from dbo.sysobjects
|
||||
where id = object_id(N'[dbo].[tblRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||||
drop table [dbo].[tblRoot]
|
||||
GO
|
||||
|
||||
if exists (select * from dbo.sysobjects
|
||||
where id = object_id(N'[dbo].[tblUpdate]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||||
drop table [dbo].[tblUpdate]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[tblCons] (
|
||||
[ID] [int] IDENTITY (1001, 1) NOT NULL ,
|
||||
[ConstantID] [varchar] (128) NULL ,
|
||||
[PositionID] [int] NOT NULL ,
|
||||
[ParentID] [varchar] (128) NULL ,
|
||||
[LastChange] [datetime] NOT NULL ,
|
||||
[Name] [varchar] (128) NOT NULL ,
|
||||
[Type] [varchar] (32) NOT NULL ,
|
||||
[Expanded] [bit] NOT NULL ,
|
||||
[Description] [varchar] (1024) NULL ,
|
||||
[Icon] [varchar] (128) NOT NULL ,
|
||||
[Panel] [varchar] (128) NOT NULL ,
|
||||
[Username] [varchar] (512) NULL ,
|
||||
[DomainName] [varchar] (512) NULL ,
|
||||
[Password] [varchar] (1024) NULL ,
|
||||
[Hostname] [varchar] (512) NULL ,
|
||||
[Protocol] [varchar] (32) NOT NULL ,
|
||||
[PuttySession] [varchar] (128) NULL ,
|
||||
[Port] [int] NOT NULL ,
|
||||
[ConnectToConsole] [bit] NOT NULL ,
|
||||
[UseCredSsp] [bit] NOT NULL ,
|
||||
[RenderingEngine] [varchar] (10) NULL ,
|
||||
[ICAEncryptionStrength] [varchar] (32) NOT NULL ,
|
||||
[RDPAuthenticationLevel] [varchar] (32) NOT NULL ,
|
||||
[RDPMinutesToIdleTimeout] [int] NOT NULL,
|
||||
[RDPAlertIdleTimeout] [bit] NOT NULL,
|
||||
[Colors] [varchar] (32) NOT NULL ,
|
||||
[Resolution] [varchar] (32) NOT NULL ,
|
||||
[DisplayWallpaper] [bit] NOT NULL ,
|
||||
[DisplayThemes] [bit] NOT NULL ,
|
||||
[EnableFontSmoothing] [bit] NOT NULL ,
|
||||
[EnableDesktopComposition] [bit] NOT NULL ,
|
||||
[CacheBitmaps] [bit] NOT NULL ,
|
||||
[RedirectDiskDrives] [bit] NOT NULL ,
|
||||
[RedirectPorts] [bit] NOT NULL ,
|
||||
[RedirectPrinters] [bit] NOT NULL ,
|
||||
[RedirectSmartCards] [bit] NOT NULL ,
|
||||
[RedirectSound] [varchar] (64) NOT NULL ,
|
||||
[SoundQuality] [varchar] (20) NOT NULL,
|
||||
[RedirectAudioCapture] [bit] NOT NULL,
|
||||
[RedirectKeys] [bit] NOT NULL ,
|
||||
[Connected] [bit] NOT NULL ,
|
||||
[PreExtApp] [varchar] (256) NULL ,
|
||||
[PostExtApp] [varchar] (256) NULL ,
|
||||
[MacAddress] [varchar] (32) NULL ,
|
||||
[UserField] [varchar] (256) NULL ,
|
||||
[ExtApp] [varchar] (256) NULL ,
|
||||
[VNCCompression] [varchar] (10) NULL ,
|
||||
[VNCEncoding] [varchar] (20) NULL ,
|
||||
[VNCAuthMode] [varchar] (10) NULL ,
|
||||
[VNCProxyType] [varchar] (20) NULL ,
|
||||
[VNCProxyIP] [varchar] (128) NULL ,
|
||||
[VNCProxyPort] [int] NULL ,
|
||||
[VNCProxyUsername] [varchar] (512) NULL ,
|
||||
[VNCProxyPassword] [varchar] (1024) NULL ,
|
||||
[VNCColors] [varchar] (10) NULL ,
|
||||
[VNCSmartSizeMode] [varchar] (20) NULL ,
|
||||
[VNCViewOnly] [bit] NOT NULL ,
|
||||
[RDGatewayUsageMethod] [varchar] (32) NOT NULL ,
|
||||
[RDGatewayHostname] [varchar] (512) NULL ,
|
||||
[RDGatewayUseConnectionCredentials] [varchar] (32) NOT NULL ,
|
||||
[RDGatewayUsername] [varchar] (512) NULL ,
|
||||
[RDGatewayPassword] [varchar] (1024) NULL ,
|
||||
[RDGatewayDomain] [varchar] (512) NULL ,
|
||||
[InheritCacheBitmaps] [bit] NOT NULL ,
|
||||
[InheritColors] [bit] NOT NULL ,
|
||||
[InheritDescription] [bit] NOT NULL ,
|
||||
[InheritDisplayThemes] [bit] NOT NULL ,
|
||||
[InheritDisplayWallpaper] [bit] NOT NULL ,
|
||||
[InheritEnableFontSmoothing] [bit] NOT NULL ,
|
||||
[InheritEnableDesktopComposition] [bit] NOT NULL ,
|
||||
[InheritDomain] [bit] NOT NULL ,
|
||||
[InheritIcon] [bit] NOT NULL ,
|
||||
[InheritPanel] [bit] NOT NULL ,
|
||||
[InheritPassword] [bit] NOT NULL ,
|
||||
[InheritPort] [bit] NOT NULL ,
|
||||
[InheritProtocol] [bit] NOT NULL ,
|
||||
[InheritPuttySession] [bit] NOT NULL ,
|
||||
[InheritRedirectDiskDrives] [bit] NOT NULL ,
|
||||
[InheritRedirectKeys] [bit] NOT NULL ,
|
||||
[InheritRedirectPorts] [bit] NOT NULL ,
|
||||
[InheritRedirectPrinters] [bit] NOT NULL ,
|
||||
[InheritRedirectSmartCards] [bit] NOT NULL ,
|
||||
[InheritRedirectSound] [bit] NOT NULL ,
|
||||
[InheritSoundQuality] [bit] NOT NULL,
|
||||
[InheritRedirectAudioCapture] [bit] NOT NULL,
|
||||
[InheritResolution] [bit] NOT NULL ,
|
||||
[InheritUseConsoleSession] [bit] NOT NULL ,
|
||||
[InheritUseCredSsp] [bit] NOT NULL ,
|
||||
[InheritRenderingEngine] [bit] NOT NULL ,
|
||||
[InheritICAEncryptionStrength] [bit] NOT NULL ,
|
||||
[InheritRDPAuthenticationLevel] [bit] NOT NULL ,
|
||||
[InheritRDPMinutesToIdleTimeout] [bit] NOT NULL,
|
||||
[InheritRDPAlertIdleTimeout] [bit] NOT NULL,
|
||||
[InheritUsername] [bit] NOT NULL ,
|
||||
[InheritPreExtApp] [bit] NOT NULL ,
|
||||
[InheritPostExtApp] [bit] NOT NULL ,
|
||||
[InheritMacAddress] [bit] NOT NULL ,
|
||||
[InheritUserField] [bit] NOT NULL ,
|
||||
[InheritExtApp] [bit] NOT NULL ,
|
||||
[InheritVNCCompression] [bit] NOT NULL,
|
||||
[InheritVNCEncoding] [bit] NOT NULL ,
|
||||
[InheritVNCAuthMode] [bit] NOT NULL ,
|
||||
[InheritVNCProxyType] [bit] NOT NULL ,
|
||||
[InheritVNCProxyIP] [bit] NOT NULL ,
|
||||
[InheritVNCProxyPort] [bit] NOT NULL ,
|
||||
[InheritVNCProxyUsername] [bit] NOT NULL ,
|
||||
[InheritVNCProxyPassword] [bit] NOT NULL ,
|
||||
[InheritVNCColors] [bit] NOT NULL ,
|
||||
[InheritVNCSmartSizeMode] [bit] NOT NULL ,
|
||||
[InheritVNCViewOnly] [bit] NOT NULL ,
|
||||
[InheritRDGatewayUsageMethod] [bit] NOT NULL ,
|
||||
[InheritRDGatewayHostname] [bit] NOT NULL ,
|
||||
[InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL ,
|
||||
[InheritRDGatewayUsername] [bit] NOT NULL ,
|
||||
[InheritRDGatewayPassword] [bit] NOT NULL ,
|
||||
[InheritRDGatewayDomain] [bit] NOT NULL ,
|
||||
[LoadBalanceInfo] [varchar] (1024) NULL ,
|
||||
[AutomaticResize] [bit] NOT NULL DEFAULT 1 ,
|
||||
[InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 ,
|
||||
[InheritAutomaticResize] [bit] NOT NULL DEFAULT 0 ,
|
||||
[RedirectClipboard] [bit] NOT NULL DEFAULT 0 ,
|
||||
[InheritRedirectClipboard] [bit] NOT NULL DEFAULT 0,
|
||||
[RedirectAudioCapture] [bit] NOT NULL DEFAULT 0,
|
||||
[InheritRedirectAudioCapture] [bit] NOT NULL DEFAULT 0
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[tblRoot] (
|
||||
[Name] [varchar] (2048) NOT NULL ,
|
||||
[Export] [bit] NOT NULL ,
|
||||
[Protected] [varchar] (4048) NOT NULL ,
|
||||
[ConfVersion] [float] NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[tblUpdate] (
|
||||
[LastUpdate] [datetime] NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
184
mRemoteV1/Documentation/mysql_db_setup.sql
Normal file
184
mRemoteV1/Documentation/mysql_db_setup.sql
Normal file
@@ -0,0 +1,184 @@
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tblCons`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tblCons`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tblCons` (
|
||||
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ConstantID` varchar(128) DEFAULT NULL,
|
||||
`PositionID` int(11) NOT NULL,
|
||||
`ParentID` varchar(128) DEFAULT NULL,
|
||||
`LastChange` datetime NOT NULL,
|
||||
`Name` varchar(128) NOT NULL,
|
||||
`Type` varchar(32) NOT NULL,
|
||||
`Expanded` tinyint(1) NOT NULL,
|
||||
`Description` varchar(1024) DEFAULT NULL,
|
||||
`Icon` varchar(128) NOT NULL,
|
||||
`Panel` varchar(128) NOT NULL,
|
||||
`Username` varchar(512) DEFAULT NULL,
|
||||
`DomainName` varchar(512) DEFAULT NULL,
|
||||
`Password` varchar(1024) DEFAULT NULL,
|
||||
`Hostname` varchar(512) DEFAULT NULL,
|
||||
`Protocol` varchar(32) NOT NULL,
|
||||
`PuttySession` varchar(128) DEFAULT NULL,
|
||||
`Port` int(11) NOT NULL,
|
||||
`ConnectToConsole` tinyint(1) NOT NULL,
|
||||
`UseCredSsp` tinyint(1) NOT NULL,
|
||||
`RenderingEngine` varchar(10) DEFAULT NULL,
|
||||
`ICAEncryptionStrength` varchar(32) NOT NULL,
|
||||
`RDPAuthenticationLevel` varchar(32) NOT NULL,
|
||||
`RDPMinutesToIdleTimeout` int(11) NOT NULL,
|
||||
`RDPAlertIdleTimeout` tinyint(1) NOT NULL,
|
||||
`Colors` varchar(32) NOT NULL,
|
||||
`Resolution` varchar(32) NOT NULL,
|
||||
`DisplayWallpaper` tinyint(1) NOT NULL,
|
||||
`DisplayThemes` tinyint(1) NOT NULL,
|
||||
`EnableFontSmoothing` tinyint(1) NOT NULL,
|
||||
`EnableDesktopComposition` tinyint(1) NOT NULL,
|
||||
`CacheBitmaps` tinyint(1) NOT NULL,
|
||||
`RedirectDiskDrives` tinyint(1) NOT NULL,
|
||||
`RedirectPorts` tinyint(1) NOT NULL,
|
||||
`RedirectPrinters` tinyint(1) NOT NULL,
|
||||
`RedirectSmartCards` tinyint(1) NOT NULL,
|
||||
`RedirectSound` varchar(64) NOT NULL,
|
||||
`SoundQuality` varchar(20) NOT NULL,
|
||||
`RedirectAudioCapture` tinyint(1) NOT NULL,
|
||||
`RedirectKeys` tinyint(1) NOT NULL,
|
||||
`Connected` tinyint(1) NOT NULL,
|
||||
`PreExtApp` varchar(256) DEFAULT NULL,
|
||||
`PostExtApp` varchar(256) DEFAULT NULL,
|
||||
`MacAddress` varchar(32) DEFAULT NULL,
|
||||
`UserField` varchar(256) DEFAULT NULL,
|
||||
`ExtApp` varchar(256) DEFAULT NULL,
|
||||
`VNCCompression` varchar(10) DEFAULT NULL,
|
||||
`VNCEncoding` varchar(20) DEFAULT NULL,
|
||||
`VNCAuthMode` varchar(10) DEFAULT NULL,
|
||||
`VNCProxyType` varchar(20) DEFAULT NULL,
|
||||
`VNCProxyIP` varchar(128) DEFAULT NULL,
|
||||
`VNCProxyPort` int(11) DEFAULT NULL,
|
||||
`VNCProxyUsername` varchar(512) DEFAULT NULL,
|
||||
`VNCProxyPassword` varchar(1024) DEFAULT NULL,
|
||||
`VNCColors` varchar(10) DEFAULT NULL,
|
||||
`VNCSmartSizeMode` varchar(20) DEFAULT NULL,
|
||||
`VNCViewOnly` tinyint(1) NOT NULL,
|
||||
`RDGatewayUsageMethod` varchar(32) NOT NULL,
|
||||
`RDGatewayHostname` varchar(512) DEFAULT NULL,
|
||||
`RDGatewayUseConnectionCredentials` varchar(32) NOT NULL,
|
||||
`RDGatewayUsername` varchar(512) DEFAULT NULL,
|
||||
`RDGatewayPassword` varchar(1024) DEFAULT NULL,
|
||||
`RDGatewayDomain` varchar(512) DEFAULT NULL,
|
||||
`InheritCacheBitmaps` tinyint(1) NOT NULL,
|
||||
`InheritColors` tinyint(1) NOT NULL,
|
||||
`InheritDescription` tinyint(1) NOT NULL,
|
||||
`InheritDisplayThemes` tinyint(1) NOT NULL,
|
||||
`InheritDisplayWallpaper` tinyint(1) NOT NULL,
|
||||
`InheritEnableFontSmoothing` tinyint(1) NOT NULL,
|
||||
`InheritEnableDesktopComposition` tinyint(1) NOT NULL,
|
||||
`InheritDomain` tinyint(1) NOT NULL,
|
||||
`InheritIcon` tinyint(1) NOT NULL,
|
||||
`InheritPanel` tinyint(1) NOT NULL,
|
||||
`InheritPassword` tinyint(1) NOT NULL,
|
||||
`InheritPort` tinyint(1) NOT NULL,
|
||||
`InheritProtocol` tinyint(1) NOT NULL,
|
||||
`InheritPuttySession` tinyint(1) NOT NULL,
|
||||
`InheritRedirectDiskDrives` tinyint(1) NOT NULL,
|
||||
`InheritRedirectKeys` tinyint(1) NOT NULL,
|
||||
`InheritRedirectPorts` tinyint(1) NOT NULL,
|
||||
`InheritRedirectPrinters` tinyint(1) NOT NULL,
|
||||
`InheritRedirectSmartCards` tinyint(1) NOT NULL,
|
||||
`InheritRedirectSound` tinyint(1) NOT NULL,
|
||||
`InheritSoundQuality` tinyint(1) NOT NULL,
|
||||
`InheritRedirectAudioCapture` tinyint(1) NOT NULL,
|
||||
`InheritResolution` tinyint(1) NOT NULL,
|
||||
`InheritUseConsoleSession` tinyint(1) NOT NULL,
|
||||
`InheritUseCredSsp` tinyint(1) NOT NULL,
|
||||
`InheritRenderingEngine` tinyint(1) NOT NULL,
|
||||
`InheritICAEncryptionStrength` tinyint(1) NOT NULL,
|
||||
`InheritRDPAuthenticationLevel` tinyint(1) NOT NULL,
|
||||
`InheritRDPMinutesToIdleTimeout` tinyint(1) NOT NULL,
|
||||
`InheritRDPAlertIdleTimeout` tinyint(1) NOT NULL,
|
||||
`InheritUsername` tinyint(1) NOT NULL,
|
||||
`InheritPreExtApp` tinyint(1) NOT NULL,
|
||||
`InheritPostExtApp` tinyint(1) NOT NULL,
|
||||
`InheritMacAddress` tinyint(1) NOT NULL,
|
||||
`InheritUserField` tinyint(1) NOT NULL,
|
||||
`InheritExtApp` tinyint(1) NOT NULL,
|
||||
`InheritVNCCompression` tinyint(1) NOT NULL,
|
||||
`InheritVNCEncoding` tinyint(1) NOT NULL,
|
||||
`InheritVNCAuthMode` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyType` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyIP` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyPort` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyUsername` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyPassword` tinyint(1) NOT NULL,
|
||||
`InheritVNCColors` tinyint(1) NOT NULL,
|
||||
`InheritVNCSmartSizeMode` tinyint(1) NOT NULL,
|
||||
`InheritVNCViewOnly` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayUsageMethod` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayHostname` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayUseConnectionCredentials` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayUsername` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayPassword` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayDomain` tinyint(1) NOT NULL,
|
||||
`LoadBalanceInfo` varchar(1024) DEFAULT NULL,
|
||||
`AutomaticResize` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`InheritLoadBalanceInfo` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`InheritAutomaticResize` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`RedirectClipboard` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`InheritRedirectClipboard` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`RedirectAudioCapture` bit NOT NULL DEFAULT 0,
|
||||
`InheritRedirectAudioCapture` bit NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3324 DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tblRoot`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tblRoot`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tblRoot` (
|
||||
`Name` varchar(2048) NOT NULL,
|
||||
`Export` tinyint(1) NOT NULL,
|
||||
`Protected` varchar(4048) NOT NULL,
|
||||
`ConfVersion` double NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tblUpdate`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tblUpdate`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tblUpdate` (
|
||||
`LastUpdate` datetime(3) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
@@ -6,7 +6,7 @@ SQL Configuration
|
||||
|
||||
.. warning::
|
||||
|
||||
The SQL feature is in an early beta stage and not intended for use in an productive environment! I recommend you to do a full backup of your connections and settings before switching to SQL Server.
|
||||
The SQL feature is in an early beta stage and not intended for use in a production environment! I recommend you to do a full backup of your connections and settings before switching to SQL Server.
|
||||
|
||||
Supported Databases
|
||||
===================
|
||||
@@ -39,343 +39,12 @@ SQL Table creation Scripts
|
||||
MSSQL
|
||||
-----
|
||||
|
||||
.. code-block:: sql
|
||||
.. include:: mssql_db_setup.sql
|
||||
:code: sql
|
||||
|
||||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblCons]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||||
drop table [dbo].[tblCons]
|
||||
GO
|
||||
|
||||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||||
drop table [dbo].[tblRoot]
|
||||
GO
|
||||
|
||||
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUpdate]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
|
||||
drop table [dbo].[tblUpdate]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[tblCons] (
|
||||
[ID] [int] IDENTITY (1001, 1) NOT NULL ,
|
||||
[ConstantID] [varchar] (128) NULL ,
|
||||
[PositionID] [int] NOT NULL ,
|
||||
[ParentID] [varchar] (128) NULL ,
|
||||
[LastChange] [datetime] NOT NULL ,
|
||||
[Name] [varchar] (128) NOT NULL ,
|
||||
[Type] [varchar] (32) NOT NULL ,
|
||||
[Expanded] [bit] NOT NULL ,
|
||||
[Description] [varchar] (1024) NULL ,
|
||||
[Icon] [varchar] (128) NOT NULL ,
|
||||
[Panel] [varchar] (128) NOT NULL ,
|
||||
[Username] [varchar] (512) NULL ,
|
||||
[DomainName] [varchar] (512) NULL ,
|
||||
[Password] [varchar] (1024) NULL ,
|
||||
[Hostname] [varchar] (512) NULL ,
|
||||
[Protocol] [varchar] (32) NOT NULL ,
|
||||
[PuttySession] [varchar] (128) NULL ,
|
||||
[Port] [int] NOT NULL ,
|
||||
[ConnectToConsole] [bit] NOT NULL ,
|
||||
[UseCredSsp] [bit] NOT NULL ,
|
||||
[RenderingEngine] [varchar] (10) NULL ,
|
||||
[ICAEncryptionStrength] [varchar] (32) NOT NULL ,
|
||||
[RDPAuthenticationLevel] [varchar] (32) NOT NULL ,
|
||||
[RDPMinutesToIdleTimeout] [int] NOT NULL,
|
||||
[RDPAlertIdleTimeout] [bit] NOT NULL,
|
||||
[Colors] [varchar] (32) NOT NULL ,
|
||||
[Resolution] [varchar] (32) NOT NULL ,
|
||||
[DisplayWallpaper] [bit] NOT NULL ,
|
||||
[DisplayThemes] [bit] NOT NULL ,
|
||||
[EnableFontSmoothing] [bit] NOT NULL ,
|
||||
[EnableDesktopComposition] [bit] NOT NULL ,
|
||||
[CacheBitmaps] [bit] NOT NULL ,
|
||||
[RedirectDiskDrives] [bit] NOT NULL ,
|
||||
[RedirectPorts] [bit] NOT NULL ,
|
||||
[RedirectPrinters] [bit] NOT NULL ,
|
||||
[RedirectSmartCards] [bit] NOT NULL ,
|
||||
[RedirectSound] [varchar] (64) NOT NULL ,
|
||||
[SoundQuality] [varchar] (20) NOT NULL,
|
||||
[RedirectAudioCapture] [bit] NOT NULL,
|
||||
[RedirectKeys] [bit] NOT NULL ,
|
||||
[Connected] [bit] NOT NULL ,
|
||||
[PreExtApp] [varchar] (256) NULL ,
|
||||
[PostExtApp] [varchar] (256) NULL ,
|
||||
[MacAddress] [varchar] (32) NULL ,
|
||||
[UserField] [varchar] (256) NULL ,
|
||||
[ExtApp] [varchar] (256) NULL ,
|
||||
[VNCCompression] [varchar] (10) NULL ,
|
||||
[VNCEncoding] [varchar] (20) NULL ,
|
||||
[VNCAuthMode] [varchar] (10) NULL ,
|
||||
[VNCProxyType] [varchar] (20) NULL ,
|
||||
[VNCProxyIP] [varchar] (128) NULL ,
|
||||
[VNCProxyPort] [int] NULL ,
|
||||
[VNCProxyUsername] [varchar] (512) NULL ,
|
||||
[VNCProxyPassword] [varchar] (1024) NULL ,
|
||||
[VNCColors] [varchar] (10) NULL ,
|
||||
[VNCSmartSizeMode] [varchar] (20) NULL ,
|
||||
[VNCViewOnly] [bit] NOT NULL ,
|
||||
[RDGatewayUsageMethod] [varchar] (32) NOT NULL ,
|
||||
[RDGatewayHostname] [varchar] (512) NULL ,
|
||||
[RDGatewayUseConnectionCredentials] [varchar] (32) NOT NULL ,
|
||||
[RDGatewayUsername] [varchar] (512) NULL ,
|
||||
[RDGatewayPassword] [varchar] (1024) NULL ,
|
||||
[RDGatewayDomain] [varchar] (512) NULL ,
|
||||
[InheritCacheBitmaps] [bit] NOT NULL ,
|
||||
[InheritColors] [bit] NOT NULL ,
|
||||
[InheritDescription] [bit] NOT NULL ,
|
||||
[InheritDisplayThemes] [bit] NOT NULL ,
|
||||
[InheritDisplayWallpaper] [bit] NOT NULL ,
|
||||
[InheritEnableFontSmoothing] [bit] NOT NULL ,
|
||||
[InheritEnableDesktopComposition] [bit] NOT NULL ,
|
||||
[InheritDomain] [bit] NOT NULL ,
|
||||
[InheritIcon] [bit] NOT NULL ,
|
||||
[InheritPanel] [bit] NOT NULL ,
|
||||
[InheritPassword] [bit] NOT NULL ,
|
||||
[InheritPort] [bit] NOT NULL ,
|
||||
[InheritProtocol] [bit] NOT NULL ,
|
||||
[InheritPuttySession] [bit] NOT NULL ,
|
||||
[InheritRedirectDiskDrives] [bit] NOT NULL ,
|
||||
[InheritRedirectKeys] [bit] NOT NULL ,
|
||||
[InheritRedirectPorts] [bit] NOT NULL ,
|
||||
[InheritRedirectPrinters] [bit] NOT NULL ,
|
||||
[InheritRedirectSmartCards] [bit] NOT NULL ,
|
||||
[InheritRedirectSound] [bit] NOT NULL ,
|
||||
[InheritSoundQuality] [bit] NOT NULL,
|
||||
[InheritRedirectAudioCapture] [bit] NOT NULL,
|
||||
[InheritResolution] [bit] NOT NULL ,
|
||||
[InheritUseConsoleSession] [bit] NOT NULL ,
|
||||
[InheritUseCredSsp] [bit] NOT NULL ,
|
||||
[InheritRenderingEngine] [bit] NOT NULL ,
|
||||
[InheritICAEncryptionStrength] [bit] NOT NULL ,
|
||||
[InheritRDPAuthenticationLevel] [bit] NOT NULL ,
|
||||
[InheritRDPMinutesToIdleTimeout] [bit] NOT NULL,
|
||||
[InheritRDPAlertIdleTimeout] [bit] NOT NULL,
|
||||
[InheritUsername] [bit] NOT NULL ,
|
||||
[InheritPreExtApp] [bit] NOT NULL ,
|
||||
[InheritPostExtApp] [bit] NOT NULL ,
|
||||
[InheritMacAddress] [bit] NOT NULL ,
|
||||
[InheritUserField] [bit] NOT NULL ,
|
||||
[InheritExtApp] [bit] NOT NULL ,
|
||||
[InheritVNCCompression] [bit] NOT NULL,
|
||||
[InheritVNCEncoding] [bit] NOT NULL ,
|
||||
[InheritVNCAuthMode] [bit] NOT NULL ,
|
||||
[InheritVNCProxyType] [bit] NOT NULL ,
|
||||
[InheritVNCProxyIP] [bit] NOT NULL ,
|
||||
[InheritVNCProxyPort] [bit] NOT NULL ,
|
||||
[InheritVNCProxyUsername] [bit] NOT NULL ,
|
||||
[InheritVNCProxyPassword] [bit] NOT NULL ,
|
||||
[InheritVNCColors] [bit] NOT NULL ,
|
||||
[InheritVNCSmartSizeMode] [bit] NOT NULL ,
|
||||
[InheritVNCViewOnly] [bit] NOT NULL ,
|
||||
[InheritRDGatewayUsageMethod] [bit] NOT NULL ,
|
||||
[InheritRDGatewayHostname] [bit] NOT NULL ,
|
||||
[InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL ,
|
||||
[InheritRDGatewayUsername] [bit] NOT NULL ,
|
||||
[InheritRDGatewayPassword] [bit] NOT NULL ,
|
||||
[InheritRDGatewayDomain] [bit] NOT NULL ,
|
||||
[LoadBalanceInfo] [varchar] (1024) NULL ,
|
||||
[AutomaticResize] [bit] NOT NULL DEFAULT 1 ,
|
||||
[InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 ,
|
||||
[InheritAutomaticResize] [bit] NOT NULL DEFAULT 0 ,
|
||||
[RedirectClipboard] [bit] NOT NULL DEFAULT 0 ,
|
||||
[InheritRedirectClipboard] [bit] NOT NULL DEFAULT 0
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[tblRoot] (
|
||||
[Name] [varchar] (2048) NOT NULL ,
|
||||
[Export] [bit] NOT NULL ,
|
||||
[Protected] [varchar] (4048) NOT NULL ,
|
||||
[ConfVersion] [float] NOT NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[tblUpdate] (
|
||||
[LastUpdate] [datetime] NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
MYSQL
|
||||
-----
|
||||
|
||||
.. code-block:: sql
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tblCons`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tblCons`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tblCons` (
|
||||
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ConstantID` varchar(128) DEFAULT NULL,
|
||||
`PositionID` int(11) NOT NULL,
|
||||
`ParentID` varchar(128) DEFAULT NULL,
|
||||
`LastChange` datetime NOT NULL,
|
||||
`Name` varchar(128) NOT NULL,
|
||||
`Type` varchar(32) NOT NULL,
|
||||
`Expanded` tinyint(1) NOT NULL,
|
||||
`Description` varchar(1024) DEFAULT NULL,
|
||||
`Icon` varchar(128) NOT NULL,
|
||||
`Panel` varchar(128) NOT NULL,
|
||||
`Username` varchar(512) DEFAULT NULL,
|
||||
`DomainName` varchar(512) DEFAULT NULL,
|
||||
`Password` varchar(1024) DEFAULT NULL,
|
||||
`Hostname` varchar(512) DEFAULT NULL,
|
||||
`Protocol` varchar(32) NOT NULL,
|
||||
`PuttySession` varchar(128) DEFAULT NULL,
|
||||
`Port` int(11) NOT NULL,
|
||||
`ConnectToConsole` tinyint(1) NOT NULL,
|
||||
`UseCredSsp` tinyint(1) NOT NULL,
|
||||
`RenderingEngine` varchar(10) DEFAULT NULL,
|
||||
`ICAEncryptionStrength` varchar(32) NOT NULL,
|
||||
`RDPAuthenticationLevel` varchar(32) NOT NULL,
|
||||
`RDPMinutesToIdleTimeout` int(11) NOT NULL,
|
||||
`RDPAlertIdleTimeout` tinyint(1) NOT NULL,
|
||||
`Colors` varchar(32) NOT NULL,
|
||||
`Resolution` varchar(32) NOT NULL,
|
||||
`DisplayWallpaper` tinyint(1) NOT NULL,
|
||||
`DisplayThemes` tinyint(1) NOT NULL,
|
||||
`EnableFontSmoothing` tinyint(1) NOT NULL,
|
||||
`EnableDesktopComposition` tinyint(1) NOT NULL,
|
||||
`CacheBitmaps` tinyint(1) NOT NULL,
|
||||
`RedirectDiskDrives` tinyint(1) NOT NULL,
|
||||
`RedirectPorts` tinyint(1) NOT NULL,
|
||||
`RedirectPrinters` tinyint(1) NOT NULL,
|
||||
`RedirectSmartCards` tinyint(1) NOT NULL,
|
||||
`RedirectSound` varchar(64) NOT NULL,
|
||||
`SoundQuality` varchar(20) NOT NULL,
|
||||
`RedirectAudioCapture` tinyint(1) NOT NULL,
|
||||
`RedirectKeys` tinyint(1) NOT NULL,
|
||||
`Connected` tinyint(1) NOT NULL,
|
||||
`PreExtApp` varchar(256) DEFAULT NULL,
|
||||
`PostExtApp` varchar(256) DEFAULT NULL,
|
||||
`MacAddress` varchar(32) DEFAULT NULL,
|
||||
`UserField` varchar(256) DEFAULT NULL,
|
||||
`ExtApp` varchar(256) DEFAULT NULL,
|
||||
`VNCCompression` varchar(10) DEFAULT NULL,
|
||||
`VNCEncoding` varchar(20) DEFAULT NULL,
|
||||
`VNCAuthMode` varchar(10) DEFAULT NULL,
|
||||
`VNCProxyType` varchar(20) DEFAULT NULL,
|
||||
`VNCProxyIP` varchar(128) DEFAULT NULL,
|
||||
`VNCProxyPort` int(11) DEFAULT NULL,
|
||||
`VNCProxyUsername` varchar(512) DEFAULT NULL,
|
||||
`VNCProxyPassword` varchar(1024) DEFAULT NULL,
|
||||
`VNCColors` varchar(10) DEFAULT NULL,
|
||||
`VNCSmartSizeMode` varchar(20) DEFAULT NULL,
|
||||
`VNCViewOnly` tinyint(1) NOT NULL,
|
||||
`RDGatewayUsageMethod` varchar(32) NOT NULL,
|
||||
`RDGatewayHostname` varchar(512) DEFAULT NULL,
|
||||
`RDGatewayUseConnectionCredentials` varchar(32) NOT NULL,
|
||||
`RDGatewayUsername` varchar(512) DEFAULT NULL,
|
||||
`RDGatewayPassword` varchar(1024) DEFAULT NULL,
|
||||
`RDGatewayDomain` varchar(512) DEFAULT NULL,
|
||||
`InheritCacheBitmaps` tinyint(1) NOT NULL,
|
||||
`InheritColors` tinyint(1) NOT NULL,
|
||||
`InheritDescription` tinyint(1) NOT NULL,
|
||||
`InheritDisplayThemes` tinyint(1) NOT NULL,
|
||||
`InheritDisplayWallpaper` tinyint(1) NOT NULL,
|
||||
`InheritEnableFontSmoothing` tinyint(1) NOT NULL,
|
||||
`InheritEnableDesktopComposition` tinyint(1) NOT NULL,
|
||||
`InheritDomain` tinyint(1) NOT NULL,
|
||||
`InheritIcon` tinyint(1) NOT NULL,
|
||||
`InheritPanel` tinyint(1) NOT NULL,
|
||||
`InheritPassword` tinyint(1) NOT NULL,
|
||||
`InheritPort` tinyint(1) NOT NULL,
|
||||
`InheritProtocol` tinyint(1) NOT NULL,
|
||||
`InheritPuttySession` tinyint(1) NOT NULL,
|
||||
`InheritRedirectDiskDrives` tinyint(1) NOT NULL,
|
||||
`InheritRedirectKeys` tinyint(1) NOT NULL,
|
||||
`InheritRedirectPorts` tinyint(1) NOT NULL,
|
||||
`InheritRedirectPrinters` tinyint(1) NOT NULL,
|
||||
`InheritRedirectSmartCards` tinyint(1) NOT NULL,
|
||||
`InheritRedirectSound` tinyint(1) NOT NULL,
|
||||
`InheritSoundQuality` tinyint(1) NOT NULL,
|
||||
`InheritRedirectAudioCapture` tinyint(1) NOT NULL,
|
||||
`InheritResolution` tinyint(1) NOT NULL,
|
||||
`InheritUseConsoleSession` tinyint(1) NOT NULL,
|
||||
`InheritUseCredSsp` tinyint(1) NOT NULL,
|
||||
`InheritRenderingEngine` tinyint(1) NOT NULL,
|
||||
`InheritICAEncryptionStrength` tinyint(1) NOT NULL,
|
||||
`InheritRDPAuthenticationLevel` tinyint(1) NOT NULL,
|
||||
`InheritRDPMinutesToIdleTimeout` tinyint(1) NOT NULL,
|
||||
`InheritRDPAlertIdleTimeout` tinyint(1) NOT NULL,
|
||||
`InheritUsername` tinyint(1) NOT NULL,
|
||||
`InheritPreExtApp` tinyint(1) NOT NULL,
|
||||
`InheritPostExtApp` tinyint(1) NOT NULL,
|
||||
`InheritMacAddress` tinyint(1) NOT NULL,
|
||||
`InheritUserField` tinyint(1) NOT NULL,
|
||||
`InheritExtApp` tinyint(1) NOT NULL,
|
||||
`InheritVNCCompression` tinyint(1) NOT NULL,
|
||||
`InheritVNCEncoding` tinyint(1) NOT NULL,
|
||||
`InheritVNCAuthMode` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyType` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyIP` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyPort` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyUsername` tinyint(1) NOT NULL,
|
||||
`InheritVNCProxyPassword` tinyint(1) NOT NULL,
|
||||
`InheritVNCColors` tinyint(1) NOT NULL,
|
||||
`InheritVNCSmartSizeMode` tinyint(1) NOT NULL,
|
||||
`InheritVNCViewOnly` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayUsageMethod` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayHostname` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayUseConnectionCredentials` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayUsername` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayPassword` tinyint(1) NOT NULL,
|
||||
`InheritRDGatewayDomain` tinyint(1) NOT NULL,
|
||||
`LoadBalanceInfo` varchar(1024) DEFAULT NULL,
|
||||
`AutomaticResize` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`InheritLoadBalanceInfo` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`InheritAutomaticResize` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`RedirectClipboard` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`InheritRedirectClipboard` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3324 DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tblRoot`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tblRoot`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tblRoot` (
|
||||
`Name` varchar(2048) NOT NULL,
|
||||
`Export` tinyint(1) NOT NULL,
|
||||
`Protected` varchar(4048) NOT NULL,
|
||||
`ConfVersion` double NOT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
-- Table structure for table `tblUpdate`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tblUpdate`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `tblUpdate` (
|
||||
`LastUpdate` datetime(3) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
|
||||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
.. include:: mysql_db_setup.sql
|
||||
:code: sql
|
||||
|
||||
@@ -23,7 +23,11 @@ New Connection
|
||||
|
||||
.. tip::
|
||||
|
||||
You can also duplicate an already created connection if you want to follow some sort of template of a connection. Just right click on folder or connection to duplicate the item. The information is then carried over for editing. This can save a lot of time when the connection list is large.
|
||||
You can also duplicate an existing connection. Just right click on folder or connection to duplicate the item. The information is then carried over for editing. This can save a lot of time when the connection list is large.
|
||||
|
||||
.. tip::
|
||||
|
||||
When inside an SSH session you can open the PuTTY menu by holding down the CTRL key while right-clicking into the session window.
|
||||
|
||||
Creates a new connection item in the connections dialog after where cursor is present.
|
||||
|
||||
|
||||
2
mRemoteV1/Properties/Settings.Designer.cs
generated
2
mRemoteV1/Properties/Settings.Designer.cs
generated
@@ -2307,7 +2307,7 @@ namespace mRemoteNG {
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("1000")]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("10000")]
|
||||
public int EncryptionKeyDerivationIterations {
|
||||
get {
|
||||
return ((int)(this["EncryptionKeyDerivationIterations"]));
|
||||
|
||||
@@ -573,7 +573,7 @@
|
||||
<Value Profile="(Default)">GCM</Value>
|
||||
</Setting>
|
||||
<Setting Name="EncryptionKeyDerivationIterations" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">1000</Value>
|
||||
<Value Profile="(Default)">10000</Value>
|
||||
</Setting>
|
||||
<Setting Name="ConDefaultSoundQuality" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Dynamic</Value>
|
||||
|
||||
27
mRemoteV1/Resources/Language/Language.Designer.cs
generated
27
mRemoteV1/Resources/Language/Language.Designer.cs
generated
@@ -186,6 +186,24 @@ namespace mRemoteNG {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Encryption Test.
|
||||
/// </summary>
|
||||
internal static string EncryptionTest {
|
||||
get {
|
||||
return ResourceManager.GetString("EncryptionTest", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Encrypting {0} entries using {1}/{2} and {3} iterations took {4} seconds..
|
||||
/// </summary>
|
||||
internal static string EncryptionTestResultMessage {
|
||||
get {
|
||||
return ResourceManager.GetString("EncryptionTestResultMessage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Environment.
|
||||
/// </summary>
|
||||
@@ -8020,6 +8038,15 @@ namespace mRemoteNG {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Test Settings.
|
||||
/// </summary>
|
||||
internal static string TestSettings {
|
||||
get {
|
||||
return ResourceManager.GetString("TestSettings", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to An unhandled exception has occurred.
|
||||
/// </summary>
|
||||
|
||||
@@ -1334,7 +1334,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<value>Introduzca su nombre de usuario de autentificación en el proxy.</value>
|
||||
</data>
|
||||
<data name="strPropertyNameAddress" xml:space="preserve">
|
||||
<value>Nombre dle host/IP</value>
|
||||
<value>Nombre del host/IP</value>
|
||||
</data>
|
||||
<data name="strPropertyNameAll" xml:space="preserve">
|
||||
<value>Todo</value>
|
||||
@@ -2068,4 +2068,4 @@ mRemoteNG ahora se cerrará y comenzará la instalación.</value>
|
||||
<data name="strYes" xml:space="preserve">
|
||||
<value>Sí</value>
|
||||
</data>
|
||||
</root>
|
||||
</root>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2793,6 +2793,15 @@ Development Channel includes Alphas, Betas & Release Candidates.</value>
|
||||
<data name="Environment" xml:space="preserve">
|
||||
<value>Environment</value>
|
||||
</data>
|
||||
<data name="EncryptionTestResultMessage" xml:space="preserve">
|
||||
<value>Encrypting {0} entries using {1}/{2} and {3} iterations took {4} seconds.</value>
|
||||
</data>
|
||||
<data name="EncryptionTest" xml:space="preserve">
|
||||
<value>Encryption Test</value>
|
||||
</data>
|
||||
<data name="TestSettings" xml:space="preserve">
|
||||
<value>Test Settings</value>
|
||||
</data>
|
||||
<data name="strPropertyDescriptionUseVmId" xml:space="preserve">
|
||||
<value>Use VM ID to connect to VM running on Hyper-V.</value>
|
||||
</data>
|
||||
|
||||
@@ -2446,7 +2446,7 @@ mRemoteNG сейчас прекратит работу и начнет проц
|
||||
<value>Минуты в режим ожидания</value>
|
||||
</data>
|
||||
<data name="strAccept" xml:space="preserve">
|
||||
<value>Приминить</value>
|
||||
<value>Применить</value>
|
||||
</data>
|
||||
<data name="strAdd" xml:space="preserve">
|
||||
<value>Добавить</value>
|
||||
|
||||
@@ -244,7 +244,8 @@
|
||||
<value>测试代理</value>
|
||||
</data>
|
||||
<data name="strCannotImportNormalSessionFile" xml:space="preserve">
|
||||
<value>您不能导入正常连接文件。请使用文件/加载连接文件以导入正常连接文件!</value>
|
||||
<value>您不能导入正常连接文件。
|
||||
请使用文件/加载连接文件以导入正常连接文件!</value>
|
||||
</data>
|
||||
<data name="strCannotStartPortScan" xml:space="preserve">
|
||||
<value>无法启动端口扫描,IP 格式不正确!</value>
|
||||
@@ -308,7 +309,7 @@ mRemoteNG提供此组件,但是如果没有使用 mRemoteNG 安装程序,不
|
||||
</data>
|
||||
<data name="strCcICAFailed" xml:space="preserve">
|
||||
<value>启用 ICA 需要提前安装 XenDesktop Online 插件,并正确注册 wfica.ocx 库文件。您可以在此下载此插件:http://www.citrix.com/download/
|
||||
如果您已安装 XenDesktop Online 插件,但人就检测失败,请手动注册 wfica.ocx 。
|
||||
如果您已安装 XenDesktop Online 插件,但仍旧检测失败,请手动注册 wfica.ocx。
|
||||
请打开运行对话框(开始菜单/运行),并输入如下内容:“regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" ”(c:\Program Files\Citrix\ICA Client\ 是您安装 XenDesktop Online 插件的路径)。
|
||||
如果仍然无法通过此检查或在 mRemoteNG 中使用 ICA,请咨询 {0}。</value>
|
||||
</data>
|
||||
@@ -335,7 +336,8 @@ Citrix ICA 客户端空间版本:{0}</value>
|
||||
远程桌面版本 {0}</value>
|
||||
</data>
|
||||
<data name="strCcVNCFailed" xml:space="preserve">
|
||||
<value>使用 VNC 前,请确认 VncSharp.dll 在您安装 mRemoteNG 的目录中(一般为 C:\Program Files\mRemoteNG\)。
|
||||
<value>VNC 要求 VncSharp.dll 位于 mRemoteNG 应用程序文件夹中。
|
||||
请确认 VncSharp.dll 在您安装 mRemoteNG 的目录中(一般为 C:\Program Files\mRemoteNG\)。
|
||||
如果仍然无法通过此检查或在 mRemoteNG 中使用 VNC,请咨询 {0}。</value>
|
||||
</data>
|
||||
<data name="strCcVNCOK" xml:space="preserve">
|
||||
@@ -460,7 +462,8 @@ VncSharp 版本 {0}</value>
|
||||
<value>无法加载配置界面。</value>
|
||||
</data>
|
||||
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
|
||||
<value>确定要关闭连接“{0}”?</value>
|
||||
<value>确定要关闭连接:
|
||||
“{0}”?</value>
|
||||
</data>
|
||||
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
|
||||
<value>确实要关闭面板“{0}”?此面板所包含的所有连接将会断开。</value>
|
||||
@@ -499,7 +502,7 @@ VncSharp 版本 {0}</value>
|
||||
<value>协议事件:已连接</value>
|
||||
</data>
|
||||
<data name="strConnectionEventConnectedDetail" xml:space="preserve">
|
||||
<value>通过{1}到主机{0}的连接,已被用户{2}打开(说明:“{3}”,自定义信息:“{4}”)。</value>
|
||||
<value>通过{1}到主机{0}的连接,已被用户{2}打开(说明:“{3}”,自定义信息:“{4}”)</value>
|
||||
</data>
|
||||
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
|
||||
<value>连接失败!</value>
|
||||
@@ -522,7 +525,7 @@ VncSharp 版本 {0}</value>
|
||||
<value>连接</value>
|
||||
</data>
|
||||
<data name="strConnectionSetDefaultPortFailed" xml:space="preserve">
|
||||
<value>无法设置默认端口 !</value>
|
||||
<value>无法设置默认端口!</value>
|
||||
</data>
|
||||
<data name="strConnectionsFileBackupFailed" xml:space="preserve">
|
||||
<value>无法创建连接配置文件备份!</value>
|
||||
@@ -653,7 +656,9 @@ VncSharp 版本 {0}</value>
|
||||
</data>
|
||||
<data name="strErrorFipsPolicyIncompatible" xml:space="preserve">
|
||||
<value>Windows 安全设置中已启用"系统加密:使用 FIPS 兼容算法进行加密、散列和签名操作"。
|
||||
|
||||
请参阅 Microsoft 支持文章中的详细信息:http://support.microsoft.com/kb/811833
|
||||
|
||||
{0} 不完全符合FIPS标准。单击“确定”继续自己的决定,或单击“取消”退出。</value>
|
||||
</data>
|
||||
<data name="strErrors" xml:space="preserve">
|
||||
@@ -707,6 +712,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strFAMFAMFAMAttribution" xml:space="preserve">
|
||||
<value>内置图标由[FAMFAMFAM]制作</value>
|
||||
</data>
|
||||
<data name="strFAMFAMFAMAttributionURL" xml:space="preserve">
|
||||
<value>http://www.famfamfam.com/</value>
|
||||
</data>
|
||||
<data name="strFileFormatLabel" xml:space="preserve">
|
||||
<value>文件格式(&F):</value>
|
||||
</data>
|
||||
@@ -773,6 +781,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strHost" xml:space="preserve">
|
||||
<value>主机</value>
|
||||
</data>
|
||||
<data name="strHttp" xml:space="preserve">
|
||||
<value>HTTP</value>
|
||||
</data>
|
||||
<data name="strHttpConnectFailed" xml:space="preserve">
|
||||
<value>HTTP 连接失败!</value>
|
||||
</data>
|
||||
@@ -782,9 +793,21 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strHttpDocumentTileChangeFailed" xml:space="preserve">
|
||||
<value>更改HTTP文档标题失败!</value>
|
||||
</data>
|
||||
<data name="strHttpGecko" xml:space="preserve">
|
||||
<value>Gecko (Firefox)</value>
|
||||
</data>
|
||||
<data name="strHttpInternetExplorer" xml:space="preserve">
|
||||
<value>Internet Explorer</value>
|
||||
</data>
|
||||
<data name="strHttps" xml:space="preserve">
|
||||
<value>HTTPS</value>
|
||||
</data>
|
||||
<data name="strHttpSetPropsFailed" xml:space="preserve">
|
||||
<value>设置 HTTP 属性失败!</value>
|
||||
</data>
|
||||
<data name="strICA" xml:space="preserve">
|
||||
<value>ICA</value>
|
||||
</data>
|
||||
<data name="strIcaConnectionFailed" xml:space="preserve">
|
||||
<value>无法创建新 ICA 连接!</value>
|
||||
</data>
|
||||
@@ -878,6 +901,12 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strIntAppTitle" xml:space="preserve">
|
||||
<value>内部程序标题:{0}</value>
|
||||
</data>
|
||||
<data name="strKeysCtrlAltDel" xml:space="preserve">
|
||||
<value>CTRL-ALT-DEL</value>
|
||||
</data>
|
||||
<data name="strKeysCtrlEsc" xml:space="preserve">
|
||||
<value>CTRL-ESC</value>
|
||||
</data>
|
||||
<data name="strLabelAddress" xml:space="preserve">
|
||||
<value>地址:</value>
|
||||
</data>
|
||||
@@ -986,6 +1015,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strMagicLibraryAttribution" xml:space="preserve">
|
||||
<value>使用[Crownwood Software]开发的 Magic 库</value>
|
||||
</data>
|
||||
<data name="strMagicLibraryAttributionURL" xml:space="preserve">
|
||||
<value>http://www.dotnetmagic.com/</value>
|
||||
</data>
|
||||
<data name="strMenuAbout" xml:space="preserve">
|
||||
<value>关于</value>
|
||||
</data>
|
||||
@@ -1188,7 +1220,7 @@ VncSharp 版本 {0}</value>
|
||||
<value>查看(&V)</value>
|
||||
</data>
|
||||
<data name="strMenuViewOnly" xml:space="preserve">
|
||||
<value>查看模式(VNC)</value>
|
||||
<value>仅查看</value>
|
||||
</data>
|
||||
<data name="strMenuWebsite" xml:space="preserve">
|
||||
<value>网站</value>
|
||||
@@ -1202,6 +1234,12 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strMoveUp" xml:space="preserve">
|
||||
<value>上移</value>
|
||||
</data>
|
||||
<data name="strMremoteNgCsv" xml:space="preserve">
|
||||
<value>mRemoteNG CSV</value>
|
||||
</data>
|
||||
<data name="strMremoteNgXml" xml:space="preserve">
|
||||
<value>mRemoteNG XML</value>
|
||||
</data>
|
||||
<data name="strMyCurrentWindowsCreds" xml:space="preserve">
|
||||
<value>当前凭据(Windows登录信息)</value>
|
||||
</data>
|
||||
@@ -1248,7 +1286,8 @@ VncSharp 版本 {0}</value>
|
||||
<value>无可用更新</value>
|
||||
</data>
|
||||
<data name="strOldConffile" xml:space="preserve">
|
||||
<value>您正在试图加载旧版mRemote连接配置文件,可能会导致出现运行时错误。如果您遇到此类错误,请创建新的连接配置文件!</value>
|
||||
<value>您正在试图加载旧版mRemote连接配置文件,可能会导致出现运行时错误。
|
||||
如果您遇到此类错误,请创建新的连接配置文件!</value>
|
||||
</data>
|
||||
<data name="strOpenNewTabRight" xml:space="preserve">
|
||||
<value>新建标签于当前标签右侧</value>
|
||||
@@ -1442,6 +1481,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strPropertyDescriptionRedirectSounds" xml:space="preserve">
|
||||
<value>请选择远程主机声音的处理方式。</value>
|
||||
</data>
|
||||
<data name="strPropertyDescriptionRedirectAudioCapture" xml:space="preserve">
|
||||
<value>选择是否应将远程计算机上的默认音频输入设备重定向到此计算机。</value>
|
||||
</data>
|
||||
<data name="strPropertyDescriptionRenderingEngine" xml:space="preserve">
|
||||
<value>请选择一个有效的渲染显示HTML的引擎。</value>
|
||||
</data>
|
||||
@@ -1604,6 +1646,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strPropertyNameRedirectSounds" xml:space="preserve">
|
||||
<value>声音</value>
|
||||
</data>
|
||||
<data name="strPropertyNameRedirectAudioCapture" xml:space="preserve">
|
||||
<value>音频捕获</value>
|
||||
</data>
|
||||
<data name="strPropertyNameRenderingEngine" xml:space="preserve">
|
||||
<value>渲染引擎</value>
|
||||
</data>
|
||||
@@ -1728,6 +1773,12 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strRadioCloseWarnNever" xml:space="preserve">
|
||||
<value>关闭连接时不需确认</value>
|
||||
</data>
|
||||
<data name="strRAW" xml:space="preserve">
|
||||
<value>RAW</value>
|
||||
</data>
|
||||
<data name="strRDP" xml:space="preserve">
|
||||
<value>RDP</value>
|
||||
</data>
|
||||
<data name="strRDP16777216Colors" xml:space="preserve">
|
||||
<value>24位色</value>
|
||||
</data>
|
||||
@@ -1816,7 +1867,7 @@ VncSharp 版本 {0}</value>
|
||||
<value>Winsock 初始化错误。</value>
|
||||
</data>
|
||||
<data name="strRdpFileCouldNotBeImported" xml:space="preserve">
|
||||
<value>无法导入 rdp 文件 !</value>
|
||||
<value>无法导入 rdp 文件!</value>
|
||||
</data>
|
||||
<data name="strRDPFitToPanel" xml:space="preserve">
|
||||
<value>适合面板</value>
|
||||
@@ -1905,6 +1956,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strRename" xml:space="preserve">
|
||||
<value>重命名</value>
|
||||
</data>
|
||||
<data name="strRlogin" xml:space="preserve">
|
||||
<value>Rlogin</value>
|
||||
</data>
|
||||
<data name="strSave" xml:space="preserve">
|
||||
<value>保存</value>
|
||||
</data>
|
||||
@@ -1918,7 +1972,7 @@ VncSharp 版本 {0}</value>
|
||||
<value>退出时保存连接配置文件</value>
|
||||
</data>
|
||||
<data name="strSaveImageFilter" xml:space="preserve">
|
||||
<value>GIF(.gif)|*.gif|JPEG(.jpeg)|*.jpeg|JPEG(.jpg)|*.jpg|PNG(.png)|*.png</value>
|
||||
<value>图形交换格式文件 (.gif)|*.gif|联合图像专家组文件 (.jpeg)|*.jpeg|联合图像专家组文件 (.jpg)|*.jpg|便携式网络图形文件 (.png)|*.png</value>
|
||||
</data>
|
||||
<data name="strScreen" xml:space="preserve">
|
||||
<value>屏幕</value>
|
||||
@@ -1977,6 +2031,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strSmartSizeModeNone" xml:space="preserve">
|
||||
<value>禁用窗口自适应</value>
|
||||
</data>
|
||||
<data name="strSocks5" xml:space="preserve">
|
||||
<value>Socks 5</value>
|
||||
</data>
|
||||
<data name="strSort" xml:space="preserve">
|
||||
<value>排序</value>
|
||||
</data>
|
||||
@@ -2043,6 +2100,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strTabUpdates" xml:space="preserve">
|
||||
<value>升级</value>
|
||||
</data>
|
||||
<data name="strTelnet" xml:space="preserve">
|
||||
<value>Telnet</value>
|
||||
</data>
|
||||
<data name="strTheFollowing" xml:space="preserve">
|
||||
<value>以下:</value>
|
||||
</data>
|
||||
@@ -2190,6 +2250,9 @@ VncSharp 版本 {0}</value>
|
||||
<data name="strType" xml:space="preserve">
|
||||
<value>类型</value>
|
||||
</data>
|
||||
<data name="strUltraVncRepeater" xml:space="preserve">
|
||||
<value>Ultra VNC Repeater</value>
|
||||
</data>
|
||||
<data name="strUltraVNCSCListeningPort" xml:space="preserve">
|
||||
<value>UltraVNC SingleClick 端口:</value>
|
||||
</data>
|
||||
@@ -2260,6 +2323,9 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<data name="strVersion" xml:space="preserve">
|
||||
<value>版本</value>
|
||||
</data>
|
||||
<data name="strVnc" xml:space="preserve">
|
||||
<value>VNC</value>
|
||||
</data>
|
||||
<data name="strVncConnectionDisconnectFailed" xml:space="preserve">
|
||||
<value>VNC 连接断开失败!</value>
|
||||
</data>
|
||||
@@ -2293,6 +2359,9 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<data name="strWeifenLuoAttribution" xml:space="preserve">
|
||||
<value>使用DockPanel Suite[Weifen Luo]</value>
|
||||
</data>
|
||||
<data name="strWeifenLuoAttributionURL" xml:space="preserve">
|
||||
<value>http://sourceforge.net/projects/dockpanelsuite/</value>
|
||||
</data>
|
||||
<data name="strXULrunnerPath" xml:space="preserve">
|
||||
<value>XULrunner 路径:</value>
|
||||
</data>
|
||||
@@ -2368,6 +2437,9 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<data name="strCredentialManager" xml:space="preserve">
|
||||
<value>凭证管理器</value>
|
||||
</data>
|
||||
<data name="strID" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="strRemove" xml:space="preserve">
|
||||
<value>移除</value>
|
||||
</data>
|
||||
@@ -2628,6 +2700,9 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<data name="strReconnectAllConnections" xml:space="preserve">
|
||||
<value>重新连接所有连接</value>
|
||||
</data>
|
||||
<data name="strUltraVNCSingleClick" xml:space="preserve">
|
||||
<value>UltraVNC SingleClick</value>
|
||||
</data>
|
||||
<data name="strMenuDisconnectOthersRight" xml:space="preserve">
|
||||
<value>断开右侧标签的连接</value>
|
||||
</data>
|
||||
@@ -2694,7 +2769,7 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<value>Multi SSH:</value>
|
||||
</data>
|
||||
<data name="strMultiSSHToolTip" xml:space="preserve">
|
||||
<value>按 ENTER 发送。 Ctrl+C 立即发送。</value>
|
||||
<value>按 ENTER 发送。Ctrl+C 立即发送。</value>
|
||||
</data>
|
||||
<data name="strPropertyDescriptionFavorite" xml:space="preserve">
|
||||
<value>在收藏夹菜单中显示此连接。</value>
|
||||
@@ -2705,4 +2780,25 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<data name="Favorites" xml:space="preserve">
|
||||
<value>收藏夹</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="ClearSearchString" xml:space="preserve">
|
||||
<value>清除搜索字符串</value>
|
||||
</data>
|
||||
<data name="ConnectInViewOnlyMode" xml:space="preserve">
|
||||
<value>以仅查看模式连接</value>
|
||||
</data>
|
||||
<data name="DoNotTrimUsername" xml:space="preserve">
|
||||
<value>不要修剪用户名中的空格</value>
|
||||
</data>
|
||||
<data name="Environment" xml:space="preserve">
|
||||
<value>环境</value>
|
||||
</data>
|
||||
<data name="EncryptionTestResultMessage" xml:space="preserve">
|
||||
<value>使用 {1}/{2} 和 {3} 迭代加密 {0} 条目花费了 {4} 秒。</value>
|
||||
</data>
|
||||
<data name="EncryptionTest" xml:space="preserve">
|
||||
<value>加密测试</value>
|
||||
</data>
|
||||
<data name="TestSettings" xml:space="preserve">
|
||||
<value>测试设置</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1,17 +1,18 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace mRemoteNG.UI.Controls.Base
|
||||
{
|
||||
public class NGSearchBox : NGTextBox
|
||||
{
|
||||
private PictureBox pbClear = new PictureBox();
|
||||
private ToolTip btClearToolTip = new ToolTip();
|
||||
private bool _showDefaultText = true;
|
||||
private bool _settingDefaultText = true;
|
||||
private readonly PictureBox _pbClear = new PictureBox();
|
||||
private readonly ToolTip _btClearToolTip = new ToolTip();
|
||||
|
||||
public NGSearchBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
TextChanged += NGSearchBox_TextChanged;
|
||||
LostFocus += FocusLost;
|
||||
GotFocus += FocusGot;
|
||||
AddClearButton();
|
||||
@@ -20,46 +21,47 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
|
||||
private void ApplyLanguage()
|
||||
{
|
||||
btClearToolTip.SetToolTip(pbClear, Language.ClearSearchString);
|
||||
_btClearToolTip.SetToolTip(_pbClear, Language.ClearSearchString);
|
||||
}
|
||||
|
||||
private void AddClearButton()
|
||||
{
|
||||
pbClear.Image = Resources.Delete;
|
||||
pbClear.Width = 20;
|
||||
pbClear.Dock = DockStyle.Right;
|
||||
pbClear.Cursor = Cursors.Default;
|
||||
pbClear.Click += PbClear_Click;
|
||||
pbClear.LostFocus += FocusLost;
|
||||
Controls.Add(pbClear);
|
||||
_pbClear.Image = Resources.Delete;
|
||||
_pbClear.Width = 20;
|
||||
_pbClear.Dock = DockStyle.Right;
|
||||
_pbClear.Cursor = Cursors.Default;
|
||||
_pbClear.Click += PbClear_Click;
|
||||
_pbClear.LostFocus += FocusLost;
|
||||
Controls.Add(_pbClear);
|
||||
}
|
||||
|
||||
private void FocusLost(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Text))
|
||||
{
|
||||
Text = Language.strSearchPrompt;
|
||||
pbClear.Visible = false;
|
||||
}
|
||||
if (!_showDefaultText)
|
||||
return;
|
||||
|
||||
_settingDefaultText = true;
|
||||
Text = Language.strSearchPrompt;
|
||||
_pbClear.Visible = false;
|
||||
}
|
||||
|
||||
private void FocusGot(object sender, EventArgs e) => Text = "";
|
||||
|
||||
private void InitializeComponent()
|
||||
private void FocusGot(object sender, EventArgs e)
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGSearchBox
|
||||
//
|
||||
this.TextChanged += new System.EventHandler(this.NGSearchBox_TextChanged);
|
||||
this.ResumeLayout(false);
|
||||
if (_showDefaultText)
|
||||
Text = "";
|
||||
}
|
||||
|
||||
private void PbClear_Click(object sender, EventArgs e) => Text = string.Empty;
|
||||
|
||||
private void NGSearchBox_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
pbClear.Visible = Text == Language.strSearchPrompt ? false : TextLength > 0;
|
||||
if (!_settingDefaultText)
|
||||
{
|
||||
_showDefaultText = string.IsNullOrEmpty(Text);
|
||||
}
|
||||
|
||||
_pbClear.Visible = !_showDefaultText && TextLength > 0;
|
||||
_settingDefaultText = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -221,7 +221,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDPAlertIdleTimeout));
|
||||
}
|
||||
|
||||
if (SelectedConnectionInfo.RDGatewayUsageMethod == RdpProtocol.RDGatewayUsageMethod.Never)
|
||||
if (SelectedConnectionInfo.RDGatewayUsageMethod == RDGatewayUsageMethod.Never)
|
||||
{
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain));
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayHostname));
|
||||
@@ -230,20 +230,20 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername));
|
||||
}
|
||||
else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials ==
|
||||
RdpProtocol.RDGatewayUseConnectionCredentials.Yes)
|
||||
RDGatewayUseConnectionCredentials.Yes)
|
||||
{
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain));
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword));
|
||||
strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername));
|
||||
}
|
||||
|
||||
if (!(SelectedConnectionInfo.Resolution == RdpProtocol.RDPResolutions.FitToWindow ||
|
||||
SelectedConnectionInfo.Resolution == RdpProtocol.RDPResolutions.Fullscreen))
|
||||
if (!(SelectedConnectionInfo.Resolution == RDPResolutions.FitToWindow ||
|
||||
SelectedConnectionInfo.Resolution == RDPResolutions.Fullscreen))
|
||||
{
|
||||
strHide.Add(nameof(AbstractConnectionRecord.AutomaticResize));
|
||||
}
|
||||
|
||||
if (SelectedConnectionInfo.RedirectSound != RdpProtocol.RDPSounds.BringToThisComputer)
|
||||
if (SelectedConnectionInfo.RedirectSound != RDPSounds.BringToThisComputer)
|
||||
{
|
||||
strHide.Add(nameof(AbstractConnectionRecord.SoundQuality));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNG.App;
|
||||
@@ -20,6 +20,7 @@ namespace mRemoteNG.UI.Controls
|
||||
_comboBox.SelectedIndexChanged += ComboBox_SelectedIndexChanged;
|
||||
_comboBox.DrawItem += ComboBox_DrawItem;
|
||||
_comboBox.DrawMode = DrawMode.OwnerDrawFixed;
|
||||
CausesValidation = false;
|
||||
|
||||
// This makes it so that _ignoreEnter works correctly before any items are added to the combo box
|
||||
_comboBox.Items.Clear();
|
||||
|
||||
109
mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs
generated
109
mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs
generated
@@ -34,12 +34,13 @@
|
||||
this.labelBlockCipher = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.comboBoxBlockCipher = new mRemoteNG.UI.Controls.Base.NGComboBox();
|
||||
this.groupAdvancedSecurityOptions = new mRemoteNG.UI.Controls.Base.NGGroupBox();
|
||||
this.numberBoxKdfIterations = new mRemoteNG.UI.Controls.Base.NGNumericUpDown();
|
||||
this.labelKdfIterations = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.btnTestSettings = new mRemoteNG.UI.Controls.Base.NGButton();
|
||||
this.labelKdfIterations = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.numberBoxKdfIterations = new mRemoteNG.UI.Controls.Base.NGNumericUpDown();
|
||||
this.groupAdvancedSecurityOptions.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).BeginInit();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// chkEncryptCompleteFile
|
||||
@@ -60,7 +61,7 @@
|
||||
this.comboBoxEncryptionEngine.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.comboBoxEncryptionEngine.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBoxEncryptionEngine.FormattingEnabled = true;
|
||||
this.comboBoxEncryptionEngine.Location = new System.Drawing.Point(223, 3);
|
||||
this.comboBoxEncryptionEngine.Location = new System.Drawing.Point(190, 3);
|
||||
this.comboBoxEncryptionEngine.Name = "comboBoxEncryptionEngine";
|
||||
this.comboBoxEncryptionEngine.Size = new System.Drawing.Size(131, 21);
|
||||
this.comboBoxEncryptionEngine.Sorted = true;
|
||||
@@ -72,7 +73,7 @@
|
||||
this.labelEncryptionEngine.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelEncryptionEngine.Location = new System.Drawing.Point(3, 0);
|
||||
this.labelEncryptionEngine.Name = "labelEncryptionEngine";
|
||||
this.labelEncryptionEngine.Size = new System.Drawing.Size(214, 26);
|
||||
this.labelEncryptionEngine.Size = new System.Drawing.Size(181, 27);
|
||||
this.labelEncryptionEngine.TabIndex = 0;
|
||||
this.labelEncryptionEngine.Text = "Encryption Engine";
|
||||
this.labelEncryptionEngine.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
@@ -81,9 +82,9 @@
|
||||
//
|
||||
this.labelBlockCipher.AutoSize = true;
|
||||
this.labelBlockCipher.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelBlockCipher.Location = new System.Drawing.Point(3, 26);
|
||||
this.labelBlockCipher.Location = new System.Drawing.Point(3, 27);
|
||||
this.labelBlockCipher.Name = "labelBlockCipher";
|
||||
this.labelBlockCipher.Size = new System.Drawing.Size(214, 26);
|
||||
this.labelBlockCipher.Size = new System.Drawing.Size(181, 27);
|
||||
this.labelBlockCipher.TabIndex = 2;
|
||||
this.labelBlockCipher.Text = "Block Cipher Mode";
|
||||
this.labelBlockCipher.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
@@ -94,21 +95,69 @@
|
||||
this.comboBoxBlockCipher.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.comboBoxBlockCipher.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBoxBlockCipher.FormattingEnabled = true;
|
||||
this.comboBoxBlockCipher.Location = new System.Drawing.Point(223, 29);
|
||||
this.comboBoxBlockCipher.Location = new System.Drawing.Point(190, 30);
|
||||
this.comboBoxBlockCipher.Name = "comboBoxBlockCipher";
|
||||
this.comboBoxBlockCipher.Size = new System.Drawing.Size(131, 21);
|
||||
this.comboBoxBlockCipher.TabIndex = 3;
|
||||
this.comboBoxBlockCipher.TabIndex = 2;
|
||||
//
|
||||
// groupAdvancedSecurityOptions
|
||||
//
|
||||
this.groupAdvancedSecurityOptions.Controls.Add(this.tableLayoutPanel1);
|
||||
this.groupAdvancedSecurityOptions.Location = new System.Drawing.Point(3, 30);
|
||||
this.groupAdvancedSecurityOptions.Name = "groupAdvancedSecurityOptions";
|
||||
this.groupAdvancedSecurityOptions.Size = new System.Drawing.Size(604, 112);
|
||||
this.groupAdvancedSecurityOptions.Size = new System.Drawing.Size(604, 134);
|
||||
this.groupAdvancedSecurityOptions.TabIndex = 1;
|
||||
this.groupAdvancedSecurityOptions.TabStop = false;
|
||||
this.groupAdvancedSecurityOptions.Text = "Advanced Security Options";
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.AutoSize = true;
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelKdfIterations, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.numberBoxKdfIterations, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelBlockCipher, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.comboBoxEncryptionEngine, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelEncryptionEngine, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.comboBoxBlockCipher, 1, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.btnTestSettings, 1, 3);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 18);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(324, 113);
|
||||
this.tableLayoutPanel1.TabIndex = 2;
|
||||
//
|
||||
// btnTestSettings
|
||||
//
|
||||
this.btnTestSettings._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT;
|
||||
this.btnTestSettings.AutoSize = true;
|
||||
this.btnTestSettings.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.btnTestSettings.Location = new System.Drawing.Point(240, 85);
|
||||
this.btnTestSettings.Name = "btnTestSettings";
|
||||
this.btnTestSettings.Size = new System.Drawing.Size(81, 25);
|
||||
this.btnTestSettings.TabIndex = 4;
|
||||
this.btnTestSettings.Text = "Test Settings";
|
||||
this.btnTestSettings.UseVisualStyleBackColor = true;
|
||||
this.btnTestSettings.Click += new System.EventHandler(this.BtnTestSettings_Click);
|
||||
//
|
||||
// labelKdfIterations
|
||||
//
|
||||
this.labelKdfIterations.AutoSize = true;
|
||||
this.labelKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelKdfIterations.Location = new System.Drawing.Point(3, 54);
|
||||
this.labelKdfIterations.Name = "labelKdfIterations";
|
||||
this.labelKdfIterations.Size = new System.Drawing.Size(181, 28);
|
||||
this.labelKdfIterations.TabIndex = 4;
|
||||
this.labelKdfIterations.Text = "Key Derivation Function Iterations";
|
||||
this.labelKdfIterations.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// numberBoxKdfIterations
|
||||
//
|
||||
this.numberBoxKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
@@ -117,7 +166,7 @@
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.numberBoxKdfIterations.Location = new System.Drawing.Point(223, 55);
|
||||
this.numberBoxKdfIterations.Location = new System.Drawing.Point(190, 57);
|
||||
this.numberBoxKdfIterations.Maximum = new decimal(new int[] {
|
||||
50000,
|
||||
0,
|
||||
@@ -130,7 +179,7 @@
|
||||
0});
|
||||
this.numberBoxKdfIterations.Name = "numberBoxKdfIterations";
|
||||
this.numberBoxKdfIterations.Size = new System.Drawing.Size(131, 22);
|
||||
this.numberBoxKdfIterations.TabIndex = 5;
|
||||
this.numberBoxKdfIterations.TabIndex = 3;
|
||||
this.numberBoxKdfIterations.ThousandsSeparator = true;
|
||||
this.numberBoxKdfIterations.Value = new decimal(new int[] {
|
||||
1000,
|
||||
@@ -138,38 +187,6 @@
|
||||
0,
|
||||
0});
|
||||
//
|
||||
// labelKdfIterations
|
||||
//
|
||||
this.labelKdfIterations.AutoSize = true;
|
||||
this.labelKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelKdfIterations.Location = new System.Drawing.Point(3, 52);
|
||||
this.labelKdfIterations.Name = "labelKdfIterations";
|
||||
this.labelKdfIterations.Size = new System.Drawing.Size(214, 26);
|
||||
this.labelKdfIterations.TabIndex = 4;
|
||||
this.labelKdfIterations.Text = "Key Derivation Function Iterations";
|
||||
this.labelKdfIterations.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 220F));
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelKdfIterations, 0, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.numberBoxKdfIterations, 1, 2);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelBlockCipher, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.comboBoxEncryptionEngine, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.labelEncryptionEngine, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.comboBoxBlockCipher, 1, 1);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 21);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(357, 81);
|
||||
this.tableLayoutPanel1.TabIndex = 2;
|
||||
//
|
||||
// SecurityPage
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
@@ -179,9 +196,10 @@
|
||||
this.Name = "SecurityPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.groupAdvancedSecurityOptions.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).EndInit();
|
||||
this.groupAdvancedSecurityOptions.PerformLayout();
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -198,5 +216,6 @@
|
||||
private Controls.Base.NGNumericUpDown numberBoxKdfIterations;
|
||||
private Controls.Base.NGLabel labelKdfIterations;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private Controls.Base.NGButton btnTestSettings;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.Config.Serializers.Xml;
|
||||
using mRemoteNG.Security;
|
||||
using mRemoteNG.Security.Factories;
|
||||
|
||||
namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
{
|
||||
@@ -30,6 +36,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
labelEncryptionEngine.Text = Language.strEncryptionEngine;
|
||||
labelKdfIterations.Text = Language.strEncryptionKeyDerivationIterations;
|
||||
groupAdvancedSecurityOptions.Text = Language.strAdvancedSecurityOptions;
|
||||
btnTestSettings.Text = Language.TestSettings;
|
||||
}
|
||||
|
||||
public override void LoadSettings()
|
||||
@@ -62,5 +69,33 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
{
|
||||
comboBoxBlockCipher.DataSource = Enum.GetValues(typeof(BlockCipherModes));
|
||||
}
|
||||
|
||||
private void BtnTestSettings_Click(object sender, EventArgs e)
|
||||
{
|
||||
var connectionTree = Runtime.ConnectionsService.ConnectionTreeModel;
|
||||
if (!connectionTree.RootNodes.Any())
|
||||
return;
|
||||
|
||||
var engine = (BlockCipherEngines) comboBoxEncryptionEngine.SelectedItem;
|
||||
var mode = (BlockCipherModes) comboBoxBlockCipher.SelectedItem;
|
||||
var cryptographyProvider = new CryptoProviderFactory(engine, mode).Build();
|
||||
cryptographyProvider.KeyDerivationIterations = (int) numberBoxKdfIterations.Value;
|
||||
|
||||
var serializerFactory = new XmlConnectionSerializerFactory();
|
||||
var serializer = serializerFactory.Build(cryptographyProvider, connectionTree, useFullEncryption: chkEncryptCompleteFile.Checked);
|
||||
var nodeCount = connectionTree.GetRecursiveChildList().Count;
|
||||
|
||||
var timer = Stopwatch.StartNew();
|
||||
var rootNode = connectionTree.RootNodes.First();
|
||||
serializer.Serialize(rootNode);
|
||||
timer.Stop();
|
||||
|
||||
MessageBox.Show(this,
|
||||
string.Format(Language.EncryptionTestResultMessage,
|
||||
nodeCount, engine, mode, numberBoxKdfIterations.Value, timer.Elapsed.TotalSeconds),
|
||||
Language.EncryptionTest,
|
||||
MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Information);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -693,15 +693,9 @@ namespace mRemoteNG.UI.Forms
|
||||
pnlDock.DockTopPortion = pnlDock.Height * 0.25;
|
||||
pnlDock.DockBottomPortion = pnlDock.Height * 0.25;
|
||||
|
||||
Windows.TreeForm.DockAreas = DockAreas.DockBottom | DockAreas.DockLeft | DockAreas.DockRight |
|
||||
DockAreas.DockTop | DockAreas.Float;
|
||||
Windows.TreeForm.Show(pnlDock, DockState.DockLeft);
|
||||
Windows.ConfigForm.DockAreas = DockAreas.DockBottom | DockAreas.DockLeft | DockAreas.DockRight |
|
||||
DockAreas.DockTop | DockAreas.Float;
|
||||
Windows.ConfigForm.Show(pnlDock);
|
||||
Windows.ConfigForm.DockTo(Windows.TreeForm.Pane, DockStyle.Bottom, -1);
|
||||
Windows.ErrorsForm.DockAreas = DockAreas.DockBottom | DockAreas.DockLeft | DockAreas.DockRight |
|
||||
DockAreas.DockTop | DockAreas.Float;
|
||||
Windows.ErrorsForm.Show(pnlDock, DockState.DockBottomAutoHide);
|
||||
Windows.ScreenshotForm.Hide();
|
||||
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
this.olvConnections.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
|
||||
this.olvConnections.HideSelection = false;
|
||||
this.olvConnections.IsSimpleDragSource = true;
|
||||
this.olvConnections.IsSimpleDropSink = true;
|
||||
this.olvConnections.LabelEdit = true;
|
||||
this.olvConnections.Location = new System.Drawing.Point(0, 24);
|
||||
this.olvConnections.MultiSelect = false;
|
||||
|
||||
@@ -338,8 +338,8 @@ namespace mRemoteNG.UI.Window
|
||||
try
|
||||
{
|
||||
if (!char.IsLetterOrDigit(e.KeyChar)) return;
|
||||
txtSearch.Text = e.KeyChar.ToString();
|
||||
txtSearch.Focus();
|
||||
txtSearch.Text = e.KeyChar.ToString();
|
||||
txtSearch.SelectionStart = txtSearch.TextLength;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -355,6 +355,8 @@ namespace mRemoteNG.UI.Window
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
{
|
||||
e.Handled = true;
|
||||
if (SelectedNode == null)
|
||||
return;
|
||||
_connectionInitiator.OpenConnection(SelectedNode);
|
||||
}
|
||||
else if (e.Control && e.KeyCode == Keys.F)
|
||||
|
||||
@@ -610,7 +610,7 @@
|
||||
<value>GCM</value>
|
||||
</setting>
|
||||
<setting name="EncryptionKeyDerivationIterations" serializeAs="String">
|
||||
<value>1000</value>
|
||||
<value>10000</value>
|
||||
</setting>
|
||||
<setting name="ConDefaultSoundQuality" serializeAs="String">
|
||||
<value>Dynamic</value>
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
<Compile Include="Config\Serializers\ConnectionSerializers\MsSql\LocalConnectionPropertiesModel.cs" />
|
||||
<Compile Include="Config\Serializers\ConnectionSerializers\MsSql\LocalConnectionPropertiesXmlSerializer.cs" />
|
||||
<Compile Include="Config\Serializers\ConnectionSerializers\MsSql\SqlConnectionListMetaData.cs" />
|
||||
<Compile Include="Config\Serializers\ConnectionSerializers\Xml\XmlConnectionSerializerFactory.cs" />
|
||||
<Compile Include="Config\Serializers\ConnectionSerializers\Xml\XmlExtensions.cs" />
|
||||
<Compile Include="Config\Serializers\CredentialProviderSerializer\CredentialRepositoryListDeserializer.cs" />
|
||||
<Compile Include="Config\CredentialRepositoryListLoader.cs" />
|
||||
@@ -253,12 +254,20 @@
|
||||
<Compile Include="Connection\IHasParent.cs" />
|
||||
<Compile Include="Connection\Protocol\Http\Connection.Protocol.HTTPS.CertEvent.cs" />
|
||||
<Compile Include="Connection\Protocol\ProtocolFactory.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\AuthenticationLevel.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\AzureLoadBalanceInfoEncoder.cs" />
|
||||
<Compile Include="Connection\Protocol\ISupportsViewOnly.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RDGatewayUsageMethod.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RDGatewayUseConnectionCredentials.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RdpClientWrap.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Connection\Protocol\RDP\RDPColors.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RdpErrorCodes.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RDPPerformanceFlags.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RDPResolutions.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RDPSoundQuality.cs" />
|
||||
<Compile Include="Connection\Protocol\RDP\RDPSounds.cs" />
|
||||
<Compile Include="Connection\Protocol\VNC\VNCEnum.cs" />
|
||||
<Compile Include="Connection\WebHelper.cs" />
|
||||
<Compile Include="Credential\PlaceholderCredentialRecord.cs" />
|
||||
@@ -1170,6 +1179,8 @@
|
||||
</None>
|
||||
<None Include="Documentation\images\connections_status.png" />
|
||||
<None Include="Documentation\images\putty.png" />
|
||||
<Content Include="Documentation\mssql_db_setup.sql" />
|
||||
<Content Include="Documentation\mysql_db_setup.sql" />
|
||||
<Content Include="Firefox\AccessibleMarshal.dll" />
|
||||
<Content Include="Firefox\breakpadinjector.dll" />
|
||||
<Content Include="Firefox\d3dcompiler_47.dll" />
|
||||
|
||||
Reference in New Issue
Block a user