2011-02-24 62 views
6

鑑於Web應用程序(.NET 3.5+)驗證與Web場

  • 瀏覽器的想法
  • Web應用程序

使用窗體身份驗證將導致類似的一行代碼

FormsAuthentication.SetAuthCookie(strUsrNm, True)

這是一個非負載平衡服務器罰款實例。認證如何在負載平衡的研究中工作(無粘性會話/無窮大),並且無法在瀏覽器中存儲客戶端IP,用戶密碼或登錄信息。

  • 瀏覽器
  • 負載平衡器
  • 網絡應用程序(在服務器1)||網絡應用程序(在服務器2)

侷限性:沒有數據庫會話,沒有AD服務器(例如:滿足外部用戶)

總之

- 在負載平衡的情況如何了appliation知道是誰的用戶如果他們沒有重新認證而對其他服務器進行認證。

感謝

回答

16

如果使用cookies,所有服務器將知道通過驗證的用戶,因爲認證憑證存儲在cookie中。任何服務器都會收到這個cookie,並且能夠解密票證並驗證用戶身份。

Here您有關於表單身份驗證如何工作的更多詳細信息。

此外,您必須確保場中的所有服務器共享用於加密和解密的計算機密鑰。

如果部署Web場中的應用程序,你必須確保每個服務器上共享的配置文件的validationKey和decryptionKey相同的值,分別用於哈希和解密。這是必需的,因爲你不能保證哪個服務器會處理連續的請求。

使用手動生成的鍵值時,設置應類似於以下示例。

<的machineKey
的validationKey = 「21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B」
decryptionKey = 「ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F」 驗證= 「SHA1」 解密= 「AES」 />

Here詳情