Авторизация в .NET Remoting
Вообще какие есть методы для ограничения доступа к серверу (за исключением внешнего файрволла)?
Конечно, есть .NET Remoting предоставляет большие возможности по защите, авторизации и администрированию. Авторизация есть четырёх типов: через старый добрый NTLM (NT Lan Manager), базовая, Passport, сертификаты. NTLM очень надёжна, но не канает при использовании в локалке брандмауэров и проксиков. При передаче данных авторизации используется Secure Sockets Layer (SSL). Протокол передачи авторизационных данных - HTTPS. Правда, для всего этого удовольствия нужен IIS на стороне сервака. Для авторизации по HTTPS нужно использовать класс HttpChannel. В целом, стратегия построения защиты и авторизации такая же, как у ASP.NET приложений
А можно более конкретно? В частности интересуют сертификаты. Пример есть?
Встроить проверку по сертификату можно в файле *.config твоего приложения:
<system.net>
<settings>
<servicePointManager
checkCertificateName="true"
/>
</settings>
</system.net>
Настройка аутентификации - тыркаешь в Солюшн Экслорере правой кнопкой ->Properties->Authenticode signature.
Для работы с сертификатом нужны классы из нэймспейса System.Security.Cryptography.X509Certificates.
Как это всё добро применить: просто подписываешь одним сертификатом клиентские и серверное приложение одним сертификатом и собственно всё (это делается через Solution Explorer). Но предупреждаю сразу - работа с сертификатами предоставлена в VS для тестов, для того чтобы законно ими пользоваться - сертификат регистрируется и покупается, иначе его использование незаконно