2008-11-05 47 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