2014-02-27 29 views
0

僅僅學習WCf安全性,並搜索瞭如何僅基於認證/授權向客戶端公開一些方法。
1)像管理應用程序一樣,服務應該公開所有方法。但對於用戶應用程序相同的服務應該公開一些方法
或者2)如果管理員登錄應用程序服務應公開所有方法和服務公開有限的方法,如果usertype用戶(而不是管理員)登錄在同一個應用程序。根據認證/授權僅向用戶公開一些方法

我已閱讀http://msdn.microsoft.com/en-us/library/ff405740.aspx但這是基於Windows的認證/授權。

回答

0

你不能這樣做,當你定義服務合同,但你可以做的是分割方法到新的服務:UserService和AdminService這樣的:

[ServiceContract] 
public interface IUserService 
{ 
    [OperationContract] 
    void DoUserStuff(); 
} 

[ServiceContract] 
public interface IAdminService : IUserService 
{ 
    [OperationContract] 
    void DoAdminStuff(); 
} 

和例如當用戶經過身份驗證,根據他的角色你可以給他發送具體服務的URL

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    string Login(string username, string password); // it returns URL of UserService or AdminService 
}