.NET Remoting через SSL с TCPChannel
Мне нужно защитить мой.NET Remoting по SSL. Я использую TCPChannel и не могу переключиться на HTTPChannel и использовать IIS для добавления SSL.
Таким образом, что я понял, мне нужно создать мой собственный Sink, который будет зашифровывать потоки, идущие в / из Client / Server. Для этого я нашел хорошую статью на MSDN: http://msdn.microsoft.com/en-us/magazine/cc300447.aspx. Тем не менее, эта статья разрабатывает склеп, рукопожатие и т. Д.
Я не хочу "изобретать велосипед". Я боюсь ошибиться при разработке этой логики самостоятельно. Вместо того, чтобы я хотел использовать некоторую реализацию SSL (например, SslStream или OpenSSL), которая сделает это за меня.
Могу ли я использовать SslStream или OpenSSL в.NET Remoting с помощью TCPChannel? Вы бы предложили простое использование?
Спасибо за помощь.
1 ответ
Подумайте о переходе на WCF.
В качестве альтернативы, удаленное взаимодействие должно быть в состоянии сделать эквивалент использования WCF с ClientCredentialType, установленным в Windows
, если вы укажете secure='true'
в вашей удаленной конфигурации на стороне клиента и сервера. TcpChannel начнет использовать SSL для шифрования связи, используя учетные данные пользователя для ключевого материала. На стороне клиента это также подразумевает tokenImpersonationLevel='identify'
Это означает, что сервер не будет олицетворять учетную запись пользователя, под которой выполняется клиент, но он будет знать, кто к нему подключен (при условии, что клиент и сервер работают в одном домене AD). Из соображений производительности установите useAuthenticatedConnectionSharing
в true
на стороне клиента.