2011-02-05 23 views

回答

0

你可以做幾件事情。

1)限制訪問這個網絡服務 - 大衛的答案涵蓋了這個很好。

2)限制訪問SL應用程序所在的網站,這很容易使用ASP.NET和通過MembershipProvider對Windows身份驗證的內置支持。這樣,如果用戶不適合正確的角色,用戶甚至無法加載承載Silverlight應用程序的HTML頁面。這也會阻止他們將應用程序安裝爲瀏覽器外,因爲他們永遠無法到達它。

3)在應用程序的OOB模式下(當Application.Current.IsRunningOutOfBrowser爲true時),在啓動時調用Web服務驗證用戶是否有正確的角色 - 如果不是,應用程序可以簡單地顯示「未經授權「的視覺和不顯示真正的應用程序功能。

這樣,如果用戶曾經擔任角色並安裝了應用程序OOB,但之後又失去了該權限,他們仍然無法使用該應用程序。

至於執行這一切,我建議看看WCF RIA服務。它具有很好的身份驗證/授權支持,即使您不希望因爲任何原因而使用RIA Services進行數據訪問,也應該簡化實現此操作的過程(儘管我也建議這樣做,它有助於隱藏Silverlight數據的大量異步複雜性訪問)。

1

您應該在IIS網站或虛擬目錄配置中啓用集成Windows身份驗證。在此之後,您可以隨時攜帶User.Identity和User.Principal對象並將它們轉換爲WindowsIdentity和WindowsPrincipal,並檢查當前用戶是否處於某個角色(又名Windows組)或他/她的用戶名...

開箱即用我不知道,因爲我從來沒有嘗試過,但是一旦您的SL用戶界面中顯示了當前用戶名的標籤,就可以測試它,檢查瀏覽器中的功能是否相同或者在瀏覽器之外。希望這有助於...

相關問題