2008-11-18 57 views
2

是否有一个托管代码(无需添加COM组件或包装调用到C++例程)以将集成安全性添加到C#托管代码程序集?集成安全

即我想编写一个客户端 - 服务器系统,其中服务器使用Remoting而不是IIS,但我希望客户端自动将其凭据传递到服务器,就像浏览器在与具有集成的IIS服务器安全启用...

可以这样做吗?如果是这样,那里有一些例子?

+0

你的意思是你想获得Windows登录凭据? – configurator 2008-11-18 14:32:17

+0

不,我知道该怎么做......我想知道如何将集成安全证书通过线路传递到服务器,就像浏览器对IIS Web服务器执行的操作一样......没有实际传递登录名和密码...(我认为浏览器通过一些协调的令牌,服务器可以验证) – 2008-11-18 14:36:37

回答

-1

当你说“远程代替IIS”时,你究竟是什么意思?远程处理端点(服务器端)通常托管在IIS中,因为这会为您提供大量免费的内容,如身份验证,通过负载均衡进行扩展 - 特别是对于单数据类型对象 - 也就是说,您不想保留状态用于连续调用端点。

您可以使用HTTP栈也XP/SP2及以后直接利用HTTP.SYS驱动程序(这是自动为您BTW handleded)的客户端应用主机一个远程端点。

无论如何,对于使用NTLM凭据进行自动登录,我建议您在IIS中主持远程处理,并使用System.Net.CredentialCache.DefaultCredentials作为您的客户端应用程序的客户端凭据。这会将上下文凭证传递给服务器应用程序,假定当前的安全区域(Int​​ranet/Internet/trusted/etc)允许它。

-Oisin

+0

我的意思是不使用IIS ...使用tcp/ip通道代替使用System.Runtime.Remoting和System.Runtime.Remoting。 Channels.Tcp: RemotingConfiguration.RegisterWellKnownServiceType(); – 2008-11-18 14:51:16

+0

因为我想使用TCP二进制协议 - 不想承担由IIS实施的限制,以获得免费的东西, ......这正是我的问题...我如何做这个(认证自己 – 2008-11-18 14:54:33

2

.NET 2有NegotiateStream,TCP远程处理使用它来提供SSPI。