mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Merge branch 'develop' into push_settings_recursively
# Conflicts: # mRemoteV1/Resources/Language/Language.Designer.cs # mRemoteV1/Resources/Language/Language.resx
This commit is contained in:
@@ -7,8 +7,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
### Added
|
||||
- #870: Added option to push inheritance settings to child nodes recursively
|
||||
### 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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -98,9 +98,9 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
|
||||
UseCredSsp = true,
|
||||
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,
|
||||
@@ -111,7 +111,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,
|
||||
@@ -122,8 +122,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);
|
||||
}
|
||||
|
||||
|
||||
@@ -184,10 +184,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.Inheritance.TurnOffInheritanceCompletely();
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -174,21 +174,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;
|
||||
}
|
||||
@@ -272,7 +272,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;
|
||||
}
|
||||
@@ -349,14 +349,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;
|
||||
}
|
||||
|
||||
@@ -100,15 +100,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"];
|
||||
@@ -122,8 +122,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"];
|
||||
|
||||
@@ -152,15 +152,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;
|
||||
|
||||
@@ -197,8 +197,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;
|
||||
|
||||
@@ -225,21 +225,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
|
||||
@@ -256,15 +256,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;
|
||||
}
|
||||
|
||||
@@ -323,15 +323,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,23 +31,23 @@ 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;
|
||||
private HTTPBase.RenderingEngine _renderingEngine;
|
||||
private bool _useCredSsp;
|
||||
|
||||
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;
|
||||
@@ -60,8 +60,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;
|
||||
@@ -244,7 +244,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");
|
||||
@@ -318,7 +318,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");
|
||||
@@ -339,7 +339,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");
|
||||
@@ -385,7 +385,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");
|
||||
@@ -407,7 +407,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");
|
||||
@@ -544,7 +544,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");
|
||||
@@ -555,7 +555,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");
|
||||
|
||||
@@ -300,17 +300,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;
|
||||
@@ -321,21 +315,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;
|
||||
@@ -343,11 +327,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;
|
||||
@@ -363,9 +346,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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -819,131 +818,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.
|
||||
|
||||
|
||||
4
mRemoteV1/Properties/Settings.Designer.cs
generated
4
mRemoteV1/Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace mRemoteNG {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
@@ -2295,7 +2295,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"]));
|
||||
|
||||
@@ -148,8 +148,8 @@
|
||||
</Setting>
|
||||
<Setting Name="ConDefaultRedirectSound" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">DoNotPlay</Value>
|
||||
</Setting>
|
||||
<Setting Name="ConDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
|
||||
</Setting>
|
||||
<Setting Name="ConDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="MaxPuttyWaitTime" Type="System.Int32" Scope="User">
|
||||
@@ -256,8 +256,8 @@
|
||||
</Setting>
|
||||
<Setting Name="InhDefaultRedirectSound" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="InhDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
|
||||
</Setting>
|
||||
<Setting Name="InhDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="InhDefaultResolution" Type="System.Boolean" Scope="User">
|
||||
@@ -570,7 +570,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>
|
||||
|
||||
28
mRemoteV1/Resources/Language/Language.Designer.cs
generated
28
mRemoteV1/Resources/Language/Language.Designer.cs
generated
@@ -19,7 +19,7 @@ namespace mRemoteNG {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Language {
|
||||
@@ -212,6 +212,23 @@ namespace mRemoteNG {
|
||||
return ResourceManager.GetString("Edit", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// 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.
|
||||
@@ -8011,6 +8028,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>
|
||||
|
||||
@@ -2802,4 +2802,13 @@ Development Channel includes Alphas, Betas & Release Candidates.</value>
|
||||
<data name="Edit" xml:space="preserve">
|
||||
<value>Edit</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>
|
||||
</root>
|
||||
@@ -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>
|
||||
|
||||
@@ -2769,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>
|
||||
@@ -2792,4 +2792,13 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<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>
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -607,7 +607,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>
|
||||
|
||||
@@ -172,6 +172,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" />
|
||||
@@ -251,12 +252,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" />
|
||||
@@ -1167,6 +1176,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