我们有一个托管IE浏览器控件的Windows窗体应用程序。用户运行该应用程序并打开存储在MOSS中的文档链接。我们正在尝试设置应用程序以传递服务帐户的凭据,以便我们可以避免向所有用户授予对MOSS站点的访问权限。我们使用此处找到的代码,如果用户没有登录到我们的域,则似乎可以正常工作。但是,对于已经通过身份验证的域用户,该应用程序似乎无法传递服务帐户身份验证。在这种情况下,它似乎只使用已经过身份验证的用户凭据。
我们如何使此功能正常工作?
我们如何使此功能正常工作?
我的理解是,您的应用程序中的IE控件将根据Windows会话中的凭据自动登录到MOSS站点。您希望它始终使用您指定的帐户,并编码到应用程序中?
IE使用一种Kerberos身份验证(Windows集成身份验证)自动登录到域站点。
三个建议:
我的建议是第一个。使用不同的地址使IE认为它没有访问受信任的站点,因此不使用集成身份验证。
所有内容都可以在应用程序外使用IE进行测试。只需启动IE并输入您正在用于MOSS网站的地址即可。如果要求输入密码,则已找到解决方案。
在这里使用模拟身份不会有帮助吗?您可以在所谈论的服务账户用户的名义下运行那段代码(表单),然后浏览器控件应该在相同的上下文中运行。
以下链接可能会有所帮助;
http://msdn.microsoft.com/en-us/library/b80a7e92.aspx
http://www.buro9.com/blog/2006/10/06/impersonating-a-user-in-c/