我如何通过 .net 远程调用模拟经过 Windows 身份验证的 Web 用户?
Posted
技术标签:
【中文标题】我如何通过 .net 远程调用模拟经过 Windows 身份验证的 Web 用户?【英文标题】:how do i impersonate a windows authenticated web user over a .net remoting call? 【发布时间】:2009-03-23 20:34:03 【问题描述】:我有一个使用 Windows 集成安全性的 Web 应用程序。我还有一个作为本地系统运行的 Windows 服务。 Web 应用程序使用 .NET 远程处理通过 tcpip 通道在服务上执行方法。有没有办法在 .NET 2.0 上将 Windows 身份传递给服务?
【问题讨论】:
【参考方案1】:根据 MSDN 文档,配置客户端和服务器 app.config 文件。
服务器:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<channels>
<channel ref="tcp" secure="true" impersonate="true" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
客户:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.runtime.remoting>
<application>
<channels>
<channel ref="tcp" secure="true" tokenImpersonationLevel="impersonation"/>
</channels>
</application>
</system.runtime.remoting>
</configuration>
请注意,该属性对于服务器称为 impersonate 而对于客户端称为 tokenImpersonationLevel。
见:http://msdn.microsoft.com/en-us/library/59hafwyt(VS.85).aspx
【讨论】:
我找到了相同的文档。但是,我仍然无法让通信从客户端工作到服务器。由于时间限制,实施了一个不太优雅的解决方案,我们直接将组(角色)传递给服务。以上是关于我如何通过 .net 远程调用模拟经过 Windows 身份验证的 Web 用户?的主要内容,如果未能解决你的问题,请参考以下文章