請考慮一個包含一組使用ASP.NET 4和本機C++ IIS模塊構建的ReST Web服務的應用程序。在ASP.NET 4中支持多種身份驗證策略Web應用程序
我們需要能夠支持2種認證策略:
內部用戶可以直接從其他客戶端應用程序中調用我們的REST端點(比如在Silverlight或Java中實現),在那裏他們已經根據提供者的內部單點登錄進行身份驗證,提供安全令牌作爲HTTP調用的一部分。
爲了測試,我們希望允許用戶使用瀏覽器訪問ReST終端,因此我們需要允許他們通過輸入用戶名/密碼進行身份驗證(我們將檢查網絡上提供的單一登錄服務器)。爲此,我們正在考慮使用ASP.NET Forms或Digest。
(這樣在一種情況下用戶已經通過身份驗證 - 但我們需要驗證這個在每次調用,在其他情況下,我們需要向他們挑戰,以提供憑據)
問題是如何以支持這兩種情況。
我無法找到一個解決方案,可在這兩種情況下工作:
如果我從一個應用程序(非瀏覽器)的調用和令牌丟失,我不能重定向他們登錄。 aspx作爲調用我們的應用程序不知道如何處理一堆HTML(登錄表單)。我需要返回響應代碼401.
但是,如果我從未通過身份驗證的Web瀏覽器接到呼叫,我不能在沒有提供用戶輸入憑據的可能性的情況下返回401。
有沒有人遇到過這個問題?
在此先感謝。
P.S.一些Web服務將在C++中實現的事實使事情變得複雜,但是如果我們至少使用表單身份驗證,那麼我可以使用集成管道併爲本地模塊使用表單。