2008-11-05 135 views
3

我们有一个托管IE浏览器控件的Windows窗体应用程序。我们的用户运行该应用程序并打开存储在MOSS中的文档的链接。我们正在尝试将应用程序设置为传递服务帐户的凭据,以便我们可以避免向所有用户访问MOSS站点。我们使用的代码为here,如果用户目前没有登录到我们的域名,这似乎可以正常工作。但是,对于任何已经通过域身份验证的用户,该应用程序似乎都不会通过服务帐户身份验证。在这种情况下,它似乎使用经过身份验证的用户凭证。通过IE浏览器在C#Windows中传递AD身份验证凭证

有谁知道我们如何做到这一点?

谢谢!

Jeff

+0

为什么不给“每个人”访问SharePoint网站或把所有需要访问该网站的广告组中,然后添加该组到SharePoint网站的用户。在这种情况下,冒充听起来像是黑客攻击。 – 2008-11-24 08:55:32

+0

Jeff:抱歉,我删除了帖子,因为我没有打开您提供的thye链接。 – 2008-11-26 20:35:00

回答

0

我的理解是,在你的应用程序中的IE控制将自动登录到MOSS站点的基础上,在Windows会话的凭据。您宁愿它总是使用您指定的帐户,并将其编码到应用程序中?

在使用一种类型的Kerberos身份验证的域名网站

IE程序自动迹象(Windows集成身份验证)

三点建议;

  • 不要使用MOSS站点的WINS名字,但IP地址,而不是(也可以用例如DNS名称不http://moss-serverhttp://moss-server.domain.com工作)。此 应导致IE不能自动登录到该网站。
  • 更改Web服务器上的身份验证模式,使用基本 只(安全警告 - 明文密码 交换)
  • 禁用在Web浏览器“启用集成Windows身份验证 ”的选项。 这将使访问任何网站 域中的痛苦...

我的建议是第一之一。使用不同的地址使IE认为它不访问受信任的站点,因此不使用集成身份验证。

所有可以在应用程序之外使用IE进行测试。简单地启动IE并输入您使用MOSS站点的地址。如果你被要求输入密码,你有你的解决方案。

2

在什么Internet区域下你指定运行的网站?即使你使用自己的浏览器控件,它仍然会在某个区域。通过使用普通浏览器转到相关站点来确定它是哪个区域,并确定它在哪个区域。
alt text http://img219.imageshack.us/img219/7162/internetzonenp8.jpg

如果该特定区域已自动登录,它将取得您登录的凭据。但是,如果您没有以有效的域用户身份登录,那么这些本地Windows凭据将不被接受,并且似乎会退回到您的代码提供的凭据上。 alt text http://img230.imageshack.us/img230/407/settingskm3.jpg

如果安全性不是一个大问题,在服务帐户证书下运行应用程序池下运行现有网页也许有意义。请记住将服务帐户添加到工作进程组,并关闭集成身份验证功能。

我从过去的经验中了解到,通常情况下,通过将全局组添加到本地组中并且可以在服务器上授予该本地组权限来维护该组。但现实世界有时很混乱,这当然不总是实用或最好的解决方案。

我希望这可以回答你的一些问题,但我不认为它会回答所有问题。如果有一个特定的区域,您希望获得更多信息,并且如果我能回答它,我会很乐意提供帮助。

问候 Rihan

相关问题