2010-05-29 54 views
0

我在通過角色和操作使用下列接口的客戶端的AzMan的店門口有一個WCF服務:的Silverlight 4 - 對自定義WCF服務authentiation /授權

[OperationContract] 
    bool AuthenticateUser(string password, string appName); 

    [OperationContract] 
    string[] GetRoles(string storelocation, string appName); 

    [OperationContract] 
    string[] GetOperations(string storeLocation, string appName, string selectedRole); 

客戶端連接到使用Windows此服務身份驗證(但用戶必須發送密碼才能重新確認身份)。最終,該服務提供了一系列操作,每個客戶端都可以根據其所選角色執行操作。

我已經打開了一個新的Silverlight業務應用程序,並試圖瞭解認證/授權如何在此模板中工作,以及在網上搜索如何將我的webservice掛接到已在模板中創建的登錄框的示例,但是我完全不知所措,因爲如何做到這一點!

任何人都可以提供任何建議嗎?

回答

1

業務應用程序模板有一個AuthenticationService,它基於User對象和AuthenticationBase類。 AuthenticationBase具有虛擬方法,您可以重寫以使用您自己的安全機制。

例如,有一個基於用戶名和密碼的Login方法。此方法返回具有名稱和角色的IUser。

看過你的界面之後,我會創建一個IUser的子接口來包含允許的操作列表,並更改生成的User類以實現此子接口。我會重寫AuthenticationService中的Login和相關方法以使用您現有的基於Azman的代碼。

+0

真棒 - 感謝!一旦我搜索了一下認證庫並看到了一些例子,我設法將它們全部排序。唯一不同的是,您不需要從IUser派生,只需向模板中已爲您創建的共享User類添加任何新屬性即可。 – Calanus 2010-06-01 12:18:56

+0

對。感謝您的反饋。 – Timores 2010-06-01 22:38:28