我正在Intranet環境中編寫Silverlight客戶端和WCF服務庫解決方案。Silverlight和WCF與Windows身份驗證
據我所知,如果我設置Windows身份驗證,那麼調用服務方法將只會成功,如果調用方在Windows中進行身份驗證,我不需要編寫代碼來提供用戶憑據。我對此有幾個問題。
我正確嗎?
我被要求讓我的申請超時(通常與互聯網應用程序完成),使用戶再次登錄。但是,我已在高級IE選項中啓用了「集成Windows身份驗證」,並在「安全」部分中啓用了「僅在Intranet區域中自動登錄」。實際上,現在用戶不會登錄到我的應用程序,而是登錄到IE,Silverlight將這些憑據自動傳遞給WCF服務。我可以更改爲'提示輸入用戶名和密碼',但是隻有當IE關閉時,憑證纔會丟失,而我無法在超時時間內執行此操作。即使我能夠,我也不得不關閉所有參與Intranet區域的IE打開的Windows,因爲身份驗證似乎在他們之間共享。
是否可以冒充其他用戶?我已經看到代碼從Windows應用程序執行此操作,但使用Silverlight時的智能感知似乎沒有提供相同的功能?
RE要點1,如果我禁用匿名訪問,那麼WCF告訴我,即使使用Windows身份驗證,我也必須啓用匿名訪問。 RE第2點,你如何使超時憑證無效?當IE打開時,用戶總是登錄,所以當時間用完時,你會怎麼做? RE點3,我明白你的意思了,我沒有想到這一點,謝謝。 – EzaBlade 2011-02-28 21:22:33
@EzaBlade在第二點,我無法想象在超時後更改憑證時必須失效的情況。但是當我用會話開發一個wcf服務時,我使用了一個擴展的代理類,它在由於超時導致的錯誤之後重新創建了通道。但是可能我已經把wcf與其他類型的超時時間混淆了。第一點很奇怪,因爲當我嘗試使用WCF數據服務時,IIS只允許僅使用一次認證。 – vorrtex 2011-02-28 23:14:52
我們的滲透測試公司希望應用程序在閒置一段時間後自動註銷。由於我無法註銷,因爲唯一的方法就是關閉IE,我不能通過代碼來完成,那麼我需要使證書無效,以便進一步的操作會提示他們。作爲附註,您不能在Silverlight應用程序中使用WCF會話。 – EzaBlade 2011-04-14 22:37:57