背景與WCF服務
身份驗證ASP.NET Web應用程序我有與WCF服務交互的ASP.NET Web應用程序。 Web應用程序和WCF服務在我的控制之下。 ASP.NET Web應用程序使用ASP.NET成員資格提供程序模型(密碼以散列形式存儲)的自定義實現來對登錄到Web應用程序的用戶進行身份驗證。 ASP.NET Web應用程序和WCF服務都可以訪問相同的成員資格數據庫。
由於用戶只會提供一次密碼,我不希望將密碼存儲在任何地方,或者通過反覆要求重新提供密碼來惹惱他們,我需要一個適當的機制來驗證用戶身份WCF服務。
根據我所看到的其他問題和答案,我正在考慮一種「登錄會話」方式,其中在用戶最初登錄到Web應用程序時將在自定義成員資格數據庫中創建登錄會話,由GUID標識的登錄會話,並在一段時間不活動後自動過期。登錄會話GUID將由Web應用程序爲每個登錄用戶「記憶」(存儲在Forms Authentication Ticket或會話中)。
WCF服務還將提供自己的登錄操作,接受用戶名和密碼並返回登錄會話GUID,如上所述。
然後,WCF服務將接受所有其他操作的登錄會話GUID,並驗證GUID是否表示允許繼續操作之前未過期的有效登錄會話。
我已經做了相當多的背景閱讀,並且有很多關於直接使用UserName客戶端憑證類型的資料,但是這需要Web應用程序記住用戶的密碼,而不是對我來說似乎是個好主意。
我已經做了一些研究,並在MSDN上找到了材料,但是這似乎需要很多努力才能實現(對我來說至少)似乎是一個非常常見的使用場景。
問題
以上是合理的描述的 「登錄會話」 的一般方法?
如果是這樣,那麼實現它的最好方法是什麼?
如果不是,你可以提出一個替代方案嗎?
您的WCF服務只能從內部網絡訪問嗎?如果是這樣的話,我不認爲需要重新認證請求。 – 2009-07-05 22:07:17
對不起 - WCF服務將在互聯網上提供。 – 2009-07-06 05:50:30