2012-02-19 142 views
0

我爲我的WCF服務實現了一個SQL成員資格提供程序。該服務通過WPF客戶端通過互聯網訪問。我有一個服務getUser()應該返回一個用戶。 可以通過該方法返回MembershipUser,因爲我已閱讀another thread,因爲該類具有SecurityAttribute且XmlSerializer無法對其進行序列化,所以無法這樣做。從WCF服務返回MembershipUser

編輯: 也是安全的返回這種類型的客戶端。是否有任何濫用的可能性?

回答

2

我不是100%確定該類型是否可以序列化的具體答案......但只是試一試。如果出現錯誤,那麼只需創建一個包含所有需要返回的信息的代理類型即可。並返回您的WCF方法:-)

+0

我可以這樣做,但我的服務和客戶端已經很大,所以會有很多更改代碼。 – Aaron 2012-02-19 14:02:35

+0

這怎麼可能?如果您現在正在開發會員供應商,那麼依賴關係如何變得如此龐大以至於難以改變?一般來說,您應該努力限制橫切問題,如果修改 – 2012-02-19 14:23:37

+0

,我會使用默認的成員資格提供程序並使用它來更改一堆代碼。我一直以這種方式工作一個月,但由於這是我的第一個WCF,WPF項目,我沒有任何計劃,因爲我不知道框架的可能性。 – Aaron 2012-02-19 15:50:51

1

我不記得是否對我們有效,但最壞的情況下,您可以創建一個DTO對象(可以說MyMembershipUser)並創建從MembershipUser到MyMembershipUser的映射。 這應該是非常簡單的。

/// <summary> 
    /// Maps MembershipUser entity to MyMembershipUser business object. 
    /// </summary> 
    /// <param name="entity">A MembershipUser entity.</param> 
    /// <returns>A product business object.</returns> 
    internal static MyMembershipUser Map(MembershipUser entity) 
    { 
     return new MyMembershipUser 
     { 
      Id = entity.Id, 
      Name= entity.Name, 
     }; 
    }