C# Class Opc.Ua.Configuration.ConfigUtils

Utility functions used by COM applications.
Afficher le fichier Open project: OPCFoundation/UA-.NET Class Usage Examples

Méthodes publiques

Свойство Type Description
CATID_OPCAEServer10 System.Guid
CATID_OPCDAServer20 System.Guid
CATID_OPCDAServer30 System.Guid
CATID_OPCHDAServer10 System.Guid
CATID_PseudoComServers System.Guid
CLSID_UaComAeProxyServer System.Guid
CLSID_UaComDaProxyServer System.Guid
CLSID_UaComHdaProxyServer System.Guid

Méthodes publiques

Méthode Description
CLSIDFromProgID ( string progID ) : System.Guid

Returns the prog id from the clsid.

CheckFirewallAccess ( string executablePath, StringCollection baseAddresses ) : bool

Checks if the firewall has been configured.

CreateServer ( System.Guid clsid ) : object

Creates an instance of a COM server.

EnumClassesInCategory ( System.Guid category ) : List

Fetches the classes in the specified category.

GetAppIcon ( ) : System.Drawing.Icon

Gets the application icon.

GetComputerWorkgroupOrDomain ( ) : string

Returns the name of the workgroup or domain that the computer belongs to.

GetExecutablePath ( System.Guid clsid ) : string

Returns the location of the COM server executable.

GetFirewallAccess ( string executablePath ) : int[]

Returns the firewall access granted to an application.

GetImplementedCategories ( System.Guid clsid ) : List

Returns the implemented categories for the class.

GetLogFileDirectory ( ) : string

Gets the log file directory and ensures it is writeable.

GetNetFwAuthorizedApplication ( ) : NetFwTypeLib.INetFwAuthorizedApplication

Creates an instance of the NetFwAuthorizedApplication Class

GetNetFwMgr ( ) : NetFwTypeLib.INetFwMgr

Creates an instance of the NetFwMgr Class

GetNetFwOpenPort ( ) : NetFwTypeLib.INetFwOpenPort

Creates an instance of the NetFwOpenPort Class

InstallApplication ( InstalledApplication application, bool autostart, bool configureFirewall ) : void

Installs a UA application.

LocallyRegisterCertificateOIDs ( X509Certificate2 certificate ) : void

Registers the object ids required to access the certificate.

LocallyRegisterCertificateOIDs ( string OIDs ) : void

Registers the object ids required to access the certificate.

This function is used to work around a bug in .NET which results in long delays while OIDs are looked up in Active Directory. CryptFindOIDInfo is supposed to work like this: 1. A table of OID entries is constructed from registry entries with the CRYPT_INSTALL_OID_INFO_BEFORE_FLAG flag. This table is searched first. 2. An internal table of OID entries is then searched. Default OIDs that Microsoft knows about. 3. A table of OIDs constructed from the registry entries without the CRYPT_INSTALL_OID_INFO_BEFORE_FLAG flag is then searched. 4. Active Directory is searched. When registering the OID information with CryptRegisterOIDInfo(ptrInfo, 0) and hack the registry this is what will happen: 1. Any application that searches for an OID (with the OID flag) will find it at step 2. The OID will be correct as well as the friendly name since it uses CryptoAPI's internal table. 2. Any application that searches for a friendly name (with the friendly name flag) will find it as step 2. The OID info is good as stated above. 3. .NET code which searches for an OID (with the friendly name flag) will find the entry in step 3 because of our hack. 4. Any OIDs that isn't found at this point will be searched in the Active Directory. This code needs to be run once for each public key type.

ProcessCommandLine ( ) : bool

Checks if command line arguments specify configuration commands.

ProcessCommandLine ( string args ) : bool

Checks if arguments specify configuration commands.

ProgIDFromCLSID ( System.Guid clsid ) : string

Returns the prog id from the clsid.

RegisterClassInCategory ( System.Guid clsid, System.Guid catid ) : void

Registers the classes in the specified category.

RegisterClassInCategory ( System.Guid clsid, System.Guid catid, string description ) : void

Registers the classes in the specified category.

RegisterComTypes ( string filePath ) : List

Registers the COM types in the specified assembly.

ReleaseServer ( object server ) : void

Releases the server if it is a true COM server.

RemoveFirewallAccess ( ) : void

Removes the firewall access granted to the specified ports.

RemoveFirewallAccess ( Opc application, string executablePath ) : void

Configures the firewall to remove access to the specified application.

RemoveFirewallAccess ( string executablePath, IList baseAddresses ) : void

Configures the firewall to remove access to the specified application.

SetFirewallAccess ( Opc application, string executablePath ) : void

Configures the firewall to allow access to the specified application.

SetFirewallAccess ( string executablePath ) : void

Returns the firewall access granted to an application.

SetFirewallAccess ( string applicationName, string executablePath, IList baseAddresses ) : void

Configures the firewall to allow access to the specified application.

UninstallApplication ( InstalledApplication application ) : void

Uninstalls a UA application.

UnregisterClassInCategory ( System.Guid clsid, System.Guid catid ) : void

Unregisters the classes in the specified category.

UnregisterComServer ( System.Guid clsid ) : void

Removes the registration for a COM server from the registry.

UnregisterComTypes ( string filePath ) : List

Unregisters the COM types in the specified assembly.

UpdateConfigurationLocation ( string executablePath, string configurationPath ) : void

Updates the configuration location for the specified

Private Methods

Méthode Description
CoCreateInstanceEx ( System.Guid &clsid, [ punkOuter, uint dwClsCtx, [ pServerInfo, uint dwCount, [ pResults ) : void
CreateCertificateForApplication ( InstalledApplication application ) : X509Certificate2

Creates a new certificate for application.

CryptFindOIDInfo ( Int32 dwKeyType, IntPtr pvKey, Int32 dwGroupId ) : IntPtr
CryptRegisterOIDInfo ( IntPtr pInfo, Int32 dwFlags ) : System.Boolean
FindFirstElement ( XmlElement parent, string localName, string namespaceUri ) : XmlElement

Finds the first child element with the specified name.

SetCertificatePermissions ( Opc application, CertificateIdentifier id, IList accessRules, bool replaceExisting ) : void

Updates the access permissions for the certificate store.

SetDefaults ( InstalledApplication application ) : void

Sets the defaults for all fields.

VerifyCodebase ( Assembly assembly, string filepath ) : void

Checks that the assembly loaded has the expected codebase.

Method Details

CLSIDFromProgID() public static méthode

Returns the prog id from the clsid.
public static CLSIDFromProgID ( string progID ) : System.Guid
progID string
Résultat System.Guid

CheckFirewallAccess() public static méthode

Checks if the firewall has been configured.
public static CheckFirewallAccess ( string executablePath, StringCollection baseAddresses ) : bool
executablePath string
baseAddresses StringCollection
Résultat bool

CreateServer() public static méthode

Creates an instance of a COM server.
public static CreateServer ( System.Guid clsid ) : object
clsid System.Guid
Résultat object

EnumClassesInCategory() public static méthode

Fetches the classes in the specified category.
public static EnumClassesInCategory ( System.Guid category ) : List
category System.Guid
Résultat List

GetAppIcon() public static méthode

Gets the application icon.
public static GetAppIcon ( ) : System.Drawing.Icon
Résultat System.Drawing.Icon

GetComputerWorkgroupOrDomain() public static méthode

Returns the name of the workgroup or domain that the computer belongs to.
public static GetComputerWorkgroupOrDomain ( ) : string
Résultat string

GetExecutablePath() public static méthode

Returns the location of the COM server executable.
public static GetExecutablePath ( System.Guid clsid ) : string
clsid System.Guid
Résultat string

GetFirewallAccess() public static méthode

Returns the firewall access granted to an application.
public static GetFirewallAccess ( string executablePath ) : int[]
executablePath string
Résultat int[]

GetImplementedCategories() public static méthode

Returns the implemented categories for the class.
public static GetImplementedCategories ( System.Guid clsid ) : List
clsid System.Guid
Résultat List

GetLogFileDirectory() public static méthode

Gets the log file directory and ensures it is writeable.
public static GetLogFileDirectory ( ) : string
Résultat string

GetNetFwAuthorizedApplication() public static méthode

Creates an instance of the NetFwAuthorizedApplication Class
public static GetNetFwAuthorizedApplication ( ) : NetFwTypeLib.INetFwAuthorizedApplication
Résultat NetFwTypeLib.INetFwAuthorizedApplication

GetNetFwMgr() public static méthode

Creates an instance of the NetFwMgr Class
public static GetNetFwMgr ( ) : NetFwTypeLib.INetFwMgr
Résultat NetFwTypeLib.INetFwMgr

GetNetFwOpenPort() public static méthode

Creates an instance of the NetFwOpenPort Class
public static GetNetFwOpenPort ( ) : NetFwTypeLib.INetFwOpenPort
Résultat NetFwTypeLib.INetFwOpenPort

InstallApplication() public static méthode

Installs a UA application.
public static InstallApplication ( InstalledApplication application, bool autostart, bool configureFirewall ) : void
application InstalledApplication
autostart bool
configureFirewall bool
Résultat void

LocallyRegisterCertificateOIDs() public static méthode

Registers the object ids required to access the certificate.
public static LocallyRegisterCertificateOIDs ( X509Certificate2 certificate ) : void
certificate System.Security.Cryptography.X509Certificates.X509Certificate2
Résultat void

LocallyRegisterCertificateOIDs() public static méthode

Registers the object ids required to access the certificate.
This function is used to work around a bug in .NET which results in long delays while OIDs are looked up in Active Directory. CryptFindOIDInfo is supposed to work like this: 1. A table of OID entries is constructed from registry entries with the CRYPT_INSTALL_OID_INFO_BEFORE_FLAG flag. This table is searched first. 2. An internal table of OID entries is then searched. Default OIDs that Microsoft knows about. 3. A table of OIDs constructed from the registry entries without the CRYPT_INSTALL_OID_INFO_BEFORE_FLAG flag is then searched. 4. Active Directory is searched. When registering the OID information with CryptRegisterOIDInfo(ptrInfo, 0) and hack the registry this is what will happen: 1. Any application that searches for an OID (with the OID flag) will find it at step 2. The OID will be correct as well as the friendly name since it uses CryptoAPI's internal table. 2. Any application that searches for a friendly name (with the friendly name flag) will find it as step 2. The OID info is good as stated above. 3. .NET code which searches for an OID (with the friendly name flag) will find the entry in step 3 because of our hack. 4. Any OIDs that isn't found at this point will be searched in the Active Directory. This code needs to be run once for each public key type.
public static LocallyRegisterCertificateOIDs ( string OIDs ) : void
OIDs string
Résultat void

ProcessCommandLine() public static méthode

Checks if command line arguments specify configuration commands.
public static ProcessCommandLine ( ) : bool
Résultat bool

ProcessCommandLine() public static méthode

Checks if arguments specify configuration commands.
public static ProcessCommandLine ( string args ) : bool
args string The arguments passed to the executable.
Résultat bool

ProgIDFromCLSID() public static méthode

Returns the prog id from the clsid.
public static ProgIDFromCLSID ( System.Guid clsid ) : string
clsid System.Guid
Résultat string

RegisterClassInCategory() public static méthode

Registers the classes in the specified category.
public static RegisterClassInCategory ( System.Guid clsid, System.Guid catid ) : void
clsid System.Guid
catid System.Guid
Résultat void

RegisterClassInCategory() public static méthode

Registers the classes in the specified category.
public static RegisterClassInCategory ( System.Guid clsid, System.Guid catid, string description ) : void
clsid System.Guid
catid System.Guid
description string
Résultat void

RegisterComTypes() public static méthode

Registers the COM types in the specified assembly.
public static RegisterComTypes ( string filePath ) : List
filePath string
Résultat List

ReleaseServer() public static méthode

Releases the server if it is a true COM server.
public static ReleaseServer ( object server ) : void
server object
Résultat void

RemoveFirewallAccess() public static méthode

Removes the firewall access granted to the specified ports.
public static RemoveFirewallAccess ( ) : void
Résultat void

RemoveFirewallAccess() public static méthode

Configures the firewall to remove access to the specified application.
public static RemoveFirewallAccess ( Opc application, string executablePath ) : void
application Opc
executablePath string
Résultat void

RemoveFirewallAccess() public static méthode

Configures the firewall to remove access to the specified application.
public static RemoveFirewallAccess ( string executablePath, IList baseAddresses ) : void
executablePath string
baseAddresses IList
Résultat void

SetFirewallAccess() public static méthode

Configures the firewall to allow access to the specified application.
public static SetFirewallAccess ( Opc application, string executablePath ) : void
application Opc
executablePath string
Résultat void

SetFirewallAccess() public static méthode

Returns the firewall access granted to an application.
public static SetFirewallAccess ( string executablePath ) : void
executablePath string
Résultat void

SetFirewallAccess() public static méthode

Configures the firewall to allow access to the specified application.
public static SetFirewallAccess ( string applicationName, string executablePath, IList baseAddresses ) : void
applicationName string
executablePath string
baseAddresses IList
Résultat void

UninstallApplication() public static méthode

Uninstalls a UA application.
public static UninstallApplication ( InstalledApplication application ) : void
application InstalledApplication
Résultat void

UnregisterClassInCategory() public static méthode

Unregisters the classes in the specified category.
public static UnregisterClassInCategory ( System.Guid clsid, System.Guid catid ) : void
clsid System.Guid
catid System.Guid
Résultat void

UnregisterComServer() public static méthode

Removes the registration for a COM server from the registry.
public static UnregisterComServer ( System.Guid clsid ) : void
clsid System.Guid
Résultat void

UnregisterComTypes() public static méthode

Unregisters the COM types in the specified assembly.
public static UnregisterComTypes ( string filePath ) : List
filePath string
Résultat List

UpdateConfigurationLocation() public static méthode

Updates the configuration location for the specified
public static UpdateConfigurationLocation ( string executablePath, string configurationPath ) : void
executablePath string
configurationPath string
Résultat void

Property Details

CATID_OPCAEServer10 public_oe static_oe property

COM servers that support the AE 1.0 specification.
public static Guid,System CATID_OPCAEServer10
Résultat System.Guid

CATID_OPCDAServer20 public_oe static_oe property

COM servers that support the DA 2.0 specification.
public static Guid,System CATID_OPCDAServer20
Résultat System.Guid

CATID_OPCDAServer30 public_oe static_oe property

COM servers that support the DA 3.0 specification.
public static Guid,System CATID_OPCDAServer30
Résultat System.Guid

CATID_OPCHDAServer10 public_oe static_oe property

COM servers that support the HDA 1.0 specification.
public static Guid,System CATID_OPCHDAServer10
Résultat System.Guid

CATID_PseudoComServers public_oe static_oe property

The category identifier for UA servers that are registered as COM servers on a machine.
public static Guid,System CATID_PseudoComServers
Résultat System.Guid

CLSID_UaComAeProxyServer public_oe static_oe property

The CLSID for the UA COM AE server host process (note: will be eventually replaced the proxy server).
public static Guid,System CLSID_UaComAeProxyServer
Résultat System.Guid

CLSID_UaComDaProxyServer public_oe static_oe property

The CLSID for the UA COM DA server host process (note: will be eventually replaced the proxy server).
public static Guid,System CLSID_UaComDaProxyServer
Résultat System.Guid

CLSID_UaComHdaProxyServer public_oe static_oe property

The CLSID for the UA COM HDA server host process (note: will be eventually replaced the proxy server).
public static Guid,System CLSID_UaComHdaProxyServer
Résultat System.Guid