1

我們的客戶要求我們使我們的Web應用程序可以從Intranet和Internet訪問。 當用戶試圖從Intranet訪問網站時,用戶應該立即登錄(Windows身份驗證)...用戶也應該有公共訪問權限(例如,家庭,咖啡店),但在這種情況下,他應該使用他的憑據和服務器會檢查它是否有效。MVC Web App Windows認證(Intranet)和憑證(互聯網)

任何建議?

+0

這很棘手,因爲IIS通常會過濾Windows身份驗證請求。我認爲您需要創建一個登錄服務來證明請求並重定向到主應用程序(如果您在Intranet中)或登錄找平層(如果您在Internet上)。 – 2014-10-08 08:14:06

+0

那麼你認爲我應該使用兩個URL :(一個用於Intranet,另一個用於Internet? – bunjeeb 2014-10-08 08:19:49

+0

不可以。您可以通過自定義授權過濾器實現所有這些,而不需要兩個URL或應用程序。我不是ActiveDirectory和網絡識別專家,但我認爲它可以完成如果將IIS(和應用程序)設置爲「Windows身份驗證」,IIS將首先提示輸入憑據無論你是在Intranet還是互聯網上,我想你都需要設置一個僞造的Forms Auth,並根據從客戶端收到的信息進行自定義授權 – 2014-10-08 08:26:09

回答

1

這是集成Windows身份驗證工作的標準方式。如果您位於Intranet內部(登錄到域),則當網站返回401.2(未指定auth方法)時,IE將自動發送您的憑證。如果您不在域內,則必須提示輸入憑據,因爲無法從客戶端計算機聯繫域服務器。

這與您提到的「棘手」解決方案並不相同。該解決方案很棘手,因爲它也使用表單身份驗證,在這裏你不需要(AFAIK)。

+0

對不起,遲到了......實際上客戶想要添加他的憑證,如果他在int ernet,能夠在內部網和互聯網上登錄! – bunjeeb 2014-10-14 05:05:19

0

我們決定完全不使用Windows身份驗證。 客戶想要保持登錄,如果他在內聯網。 所以我們做了以下(和客戶是確定與)

  1. 窗體身份驗證+「讓我登錄」複選框
  2. 驗證憑據與AD。
  3. 檢查受信任的IP地址範圍內的用戶範圍(類似於SQL Azure中允許的IP地址)
  4. 如果受信任的IP範圍,則用戶將被認證。
  5. 如果不是,通過發送短信雙因素認證。

不使用Windows身份驗證的另一個原因。 用戶希望隨時註銷以使用不同的憑證執行一些特殊任務。

通常顧客不知道他們想要什麼,所以我們會開始做夢,讓事情變得複雜。 '只需讓我登錄'即可信任的IP地址,他將保持N天登錄狀態。