2010-03-24 78 views
0

我的客戶有一個交換服務器,並提供免費的電子郵件帳戶給他的客戶和合作夥伴。他的客戶需要通過登錄和密碼訪問某些Web應用程序,並需要進行身份驗證。使用交換認證

我想過創建一個自定義的asp.net成員資格提供程序,而不是通常的aspnetdb存儲,

有沒有辦法通過交換提供的電子郵件/用戶名和密碼驗證這些用戶的反應?

謝謝。

回答

1

如果我沒有弄錯交換認證通過和只能通過活動目錄。所以你不妨使用一些內置的LDAP認證機制。

已經有不少可行的方法來這個,如果你做ASP.NET LDAP Authentication

搜索然而,海事組織,最簡單的方法是簡單地使用ASP.NET Windows身份驗證模式:

<system.web> 
    ... 
    <authentication mode="Windows"/> 
    ... 
</system.web> 

並加入您的網站將部署到與Exchange相同的域的機器。當然會有更多的實施細節。但我認爲這是最痛苦的。

您可以訪問域信息像這樣的當前用戶:

var user = (WindowsPrincipal)HttpContext.Current.User; // assume Windows auth. 

注:認爲然而,有一些應該在實施之前進行適當評估各種安全隱患。

+0

這隻有在Web服務器和交換機位於同一個域中時纔有效。如果他們處於不同的網絡或域中,這會變得棘手。在任何情況下,您通常都是針對目標活動目錄進行身份驗證,並且可以通過LDAP和自定義編碼來實現。有各種安全風險需要緩解。 – 2010-03-24 02:11:14

+0

那麼我確實說過「並加入你的網站將部署到Exchange相同的域的機器。」 ......但同意你在安全風險點。 – chakrit 2010-03-24 02:15:01

0

我懷疑你是在客戶端控制的AD域進行身份驗證。這article應該幫助

+0

好吧,我想到了活動目錄。但那些郵箱沒有AD帳戶的用戶呢? 我wwanna相信必須有一種方式來登錄到交換帳戶,而不是AD用戶。 順便說一句,該應用程序是基於Web的。我聽說過交換Web服務。他們不包括任何WS認證? 什麼是OWA?任何想法都是可以理解的。 – user300435 2010-03-24 02:34:02

0

通常我會使用ActiveDirectoryMembershipProvider結合基於表單的身份驗證。這將使用Exchange正在使用的相同Active Directory存儲。 MSDN上有詳細的關於各種實現可能性的article。您也可以使用基於Windows的身份驗證,如@chakrit所示,但請注意,一旦您通過身份驗證,瀏覽器將保持身份驗證狀態,直到它關閉 - 不會註銷。 Windows身份驗證的一個很好的功能是,如果該站點位於Intranet或受信任的站點區域中,則永遠不會提示您輸入憑據。另一方面,你不想讓任何人在你登錄的時候借用你的工作站。我只會將它用於需要保護的事物,但不一定非常敏感 - 例如內聯網站點。