OPC UA Безопасное соединение в vb.net ⇐ C#
OPC UA Безопасное соединение в vb.net
Я нашел пример кода для подключения к UA-серверу на C#:
Console.WriteLine("Настройка UA-клиента"); вар конфигурации = новая конфигурация приложения () { ИмяПриложения = "OPC_Client_SQL", ApplicationUri = Utils.Format(@"urn:{0}:BatchPlantClient", System.Net.Dns.GetHostName()), ТипПриложения = ТипПриложения.Клиент, SecurityConfiguration = новая конфигурация безопасности { ApplicationCertificate = новый CertificateIdentifier { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault", subjectName = "OPC_Client_SQL" }, TrustedIssuerCertificates = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Certificate Authorities" }, TrustedPeerCertificates = новый CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Applications" }, RejectedCertificateStore = новый CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\RejectedCertificates" }, AutoAcceptUntrustedCertificates = true }, TransportConfigurations = новая Коллекция TransportConfiguration(), TransportQuotas = новые TransportQuotas { OperationTimeout = 15000 }, ClientConfiguration = новый ClientConfiguration {DefaultSessionTimeout = 60000}, TraceConfiguration = новая TraceConfiguration() }; config.Validate(ApplicationType.Client).GetAwaiter().GetResult(); если (config.SecurityConfiguration.AutoAcceptUntrustedCertificates) { config.CertificateValidator.CertificateValidation += (s, e) => { e.Accept = (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted); }; } Я пытался перенести его в vb.net, но получаю ошибку:
Console.WriteLine("Настройка UA-клиента") Dim config = New ApplicationConfiguration() с { .ApplicationName = "OPC_Client_SQL", .ApplicationUri = Utils.Format("urn:{0}:OPC_Client_SQL", System.Net.Dns.GetHostName()), .ТипПриложения = ТипПриложения.Клиент, .SecurityConfiguration = Новая конфигурация безопасности с { .ApplicationCertificate = Новый идентификатор сертификата с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault", .SubjectName = "OPC_Client_SQL" }, .TrustedIssuerCertificates = Новый список сертификатов TrustedList с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\Центры сертификации UA" }, .TrustedPeerCertificates = Новый список сертификатов TrustedList с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\UA Applications" }, .RejectedCertificateStore = Новый список сертификатов TrustList с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\RejectedCertificates" }, .AutoAcceptUntrustedCertificates = Истина }, .TransportConfigurations = Новая коллекция транспортных конфигураций(), .TransportQuotas = Новые TransportQuotas с { .OperationTimeout = 15000 }, .ClientConfiguration = Новая конфигурация клиента с { .DefaultSessionTimeout = 60000 }, .TraceConfiguration = Новая TraceConfiguration() } config.Validate(ApplicationType.Client).GetAwaiter().GetResult() Если config.SecurityConfiguration.AutoAcceptUntrustedCertificates Тогда Конфигурация AddHandler.CertificateValidator.CertificateValidation, Sub(s, e) e.Accept = e.Error.StatusCode = StatusCodes.BadCertificateUntrusted Конец, если Строка ошибки: Конфигурация AddHandler.CertificateValidator.CertificateValidation, Sub(s, e) e.Accept = e.Error.StatusCode = StatusCodes.BadCertificateUntrusted
BC36641 — параметр Lambda '' скрывает переменную во включающем блоке, ранее определенную переменную диапазона или неявно объявленную переменную в выражении запроса.
Было бы хорошо, если бы кто-нибудь помог мне решить эту проблему.
Я нашел пример кода для подключения к UA-серверу на C#:
Console.WriteLine("Настройка UA-клиента"); вар конфигурации = новая конфигурация приложения () { ИмяПриложения = "OPC_Client_SQL", ApplicationUri = Utils.Format(@"urn:{0}:BatchPlantClient", System.Net.Dns.GetHostName()), ТипПриложения = ТипПриложения.Клиент, SecurityConfiguration = новая конфигурация безопасности { ApplicationCertificate = новый CertificateIdentifier { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault", subjectName = "OPC_Client_SQL" }, TrustedIssuerCertificates = new CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Certificate Authorities" }, TrustedPeerCertificates = новый CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\UA Applications" }, RejectedCertificateStore = новый CertificateTrustList { StoreType = @"Directory", StorePath = @"%CommonApplicationData%\OPC Foundation\CertificateStores\RejectedCertificates" }, AutoAcceptUntrustedCertificates = true }, TransportConfigurations = новая Коллекция TransportConfiguration(), TransportQuotas = новые TransportQuotas { OperationTimeout = 15000 }, ClientConfiguration = новый ClientConfiguration {DefaultSessionTimeout = 60000}, TraceConfiguration = новая TraceConfiguration() }; config.Validate(ApplicationType.Client).GetAwaiter().GetResult(); если (config.SecurityConfiguration.AutoAcceptUntrustedCertificates) { config.CertificateValidator.CertificateValidation += (s, e) => { e.Accept = (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted); }; } Я пытался перенести его в vb.net, но получаю ошибку:
Console.WriteLine("Настройка UA-клиента") Dim config = New ApplicationConfiguration() с { .ApplicationName = "OPC_Client_SQL", .ApplicationUri = Utils.Format("urn:{0}:OPC_Client_SQL", System.Net.Dns.GetHostName()), .ТипПриложения = ТипПриложения.Клиент, .SecurityConfiguration = Новая конфигурация безопасности с { .ApplicationCertificate = Новый идентификатор сертификата с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\MachineDefault", .SubjectName = "OPC_Client_SQL" }, .TrustedIssuerCertificates = Новый список сертификатов TrustedList с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\Центры сертификации UA" }, .TrustedPeerCertificates = Новый список сертификатов TrustedList с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\UA Applications" }, .RejectedCertificateStore = Новый список сертификатов TrustList с { .StoreType = "Каталог", .StorePath = "%CommonApplicationData%\OPC Foundation\CertificateStores\RejectedCertificates" }, .AutoAcceptUntrustedCertificates = Истина }, .TransportConfigurations = Новая коллекция транспортных конфигураций(), .TransportQuotas = Новые TransportQuotas с { .OperationTimeout = 15000 }, .ClientConfiguration = Новая конфигурация клиента с { .DefaultSessionTimeout = 60000 }, .TraceConfiguration = Новая TraceConfiguration() } config.Validate(ApplicationType.Client).GetAwaiter().GetResult() Если config.SecurityConfiguration.AutoAcceptUntrustedCertificates Тогда Конфигурация AddHandler.CertificateValidator.CertificateValidation, Sub(s, e) e.Accept = e.Error.StatusCode = StatusCodes.BadCertificateUntrusted Конец, если Строка ошибки: Конфигурация AddHandler.CertificateValidator.CertificateValidation, Sub(s, e) e.Accept = e.Error.StatusCode = StatusCodes.BadCertificateUntrusted
BC36641 — параметр Lambda '' скрывает переменную во включающем блоке, ранее определенную переменную диапазона или неявно объявленную переменную в выражении запроса.
Было бы хорошо, если бы кто-нибудь помог мне решить эту проблему.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение