Pregunta

¿hay una forma de código administrado (sin agregar el componente COM o encapsulado a las rutinas C ++) para agregar seguridad integrada a un ensamblaje de código administrado de C #?

es decir Quiero escribir un sistema cliente-servidor donde el servidor use Remoting en lugar de IIS, pero quiero que el cliente pase automáticamente sus credenciales al servidor tal como lo hace un navegador cuando se comunica con un servidor IIS que tiene habilitada la seguridad integrada ...

¿Se puede hacer esto? y si es así, ¿dónde hay algunos ejemplos?

¿Fue útil?

Solución

No: no existe una interfaz administrada pura para SSPI . Pero, hay una muestra de MSDN que envuelve SSPI para usted , y luego usa el contenedor para la comunicación remota .

Otros consejos

.NET 2 tiene NegotiateStream que es utilizado por la comunicación remota TCP para proporcionar SSPI.

hay WCF y todas las bibliotecas .net para que implementes algo así. Usé algo como esto

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

y para la parte del servidor

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

esos dos pasos son buenos para comenzar una propia integración de seguridad implementada.

Cuando dices " remoting en lugar de IIS, " ¿Qué quieres decir exactamente? Un punto final remoto (el extremo del servidor) generalmente está alojado en IIS, ya que esto le brinda muchas cosas de forma gratuita, como autenticación, escalado a través del equilibrio de carga, especialmente para objetos de tipo de llamada única, es decir, no desea mantener el estado para llamadas sucesivas al punto final.

Puede alojar un punto final remoto utilizando la pila http en una aplicación cliente también en xp / sp2 y más allá utilizando el controlador http.sys directamente (que se maneja automáticamente por usted).

Independientemente, para el inicio de sesión automático con credenciales NTLM, le sugiero que aloje la comunicación remota en IIS y use System.Net.CredentialCache.DefaultCredentials para las credenciales del cliente en su aplicación cliente. Esto pasará las credenciales de contexto a la aplicación del servidor, suponiendo que la zona de seguridad actual (intranet / internet / Trusted / etc) lo permita.

-Oisina

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top