Комплексная безопасность - PullRequest
2 голосов
/ 18 ноября 2008

существует ли управляемый код (без добавления COM-компонента или обертки для вызова подпрограмм C ++), способ добавить интегрированную защиту в сборку управляемого кода C #?

т.е. Я хочу написать клиент-серверную систему, в которой сервер будет использовать Remoting вместо IIS, но я хочу, чтобы клиент автоматически передавал свои учетные данные на сервер так же, как это делает браузер при взаимодействии с сервером IIS, на котором включена встроенная защита ...

Можно ли это сделать? и если да, то где есть примеры?

Ответы [ 4 ]

5 голосов
/ 18 ноября 2008

Нет - нет чистого управляемого интерфейса для SSPI . Но есть пример MSDN, который оборачивает SSPI для вас , а затем использует обертку для удаленного взаимодействия .

2 голосов
/ 28 декабря 2008

.NET 2 имеет NegotiateStream, который используется удаленным взаимодействием TCP для предоставления SSPI.

1 голос
/ 28 декабря 2008

есть WCF и все библиотеки .net для реализации чего-то подобного. Я использовал что-то вроде этого

http://www.theproblemsolver.nl/usingthemembershipproviderinwinforms.htm

и для серверной части

http://weblogs.asp.net/dwahlin/archive/2007/02/03/video-creating-a-service-with-windows-communication-service-wcf.aspx

эти два шага приятно начать собственную интеграцию безопасности.

0 голосов
/ 18 ноября 2008

Когда вы говорите «удаленное взаимодействие вместо IIS», что именно вы имеете в виду? Конечная точка удаленного взаимодействия (конец сервера) обычно размещается в IIS, поскольку это дает вам множество бесплатных ресурсов, таких как аутентификация, масштабирование с балансировкой нагрузки - особенно для объектов типа singlecall - то есть вы не хотите сохранять состояние для последовательных звонков в конечную точку.

Вы можете разместить конечную точку удаленного взаимодействия, используя стек http в клиентском приложении, также в xp / sp2 и далее, используя непосредственно драйвер http.sys (который обрабатывается автоматически для вас, кстати).

Несмотря на это, для автоматического входа в систему с учетными данными NTLM я предлагаю вам разместить удаленное взаимодействие в IIS и использовать System.Net.CredentialCache.DefaultCredentials для учетных данных клиента вашего клиентского приложения. Это передаст учетные данные контекста приложению сервера, предполагая, что текущая зона безопасности (интранет / интернет / доверенный / и т. Д.) Позволяет это.

-Oisin

...