从WCF服务返回MembershipUser

问题描述:

我为我的WCF服务实现了一个SQL成员资格提供程序。该服务通过WPF客户端通过互联网访问。我有一个服务getUser()应该返回一个用户。 可以通过该方法返回MembershipUser,因为我已阅读another thread,因为该类具有SecurityAttribute且XmlSerializer无法对其进行序列化,所以无法这样做。从WCF服务返回MembershipUser

编辑: 也是安全的返回这种类型的客户端。是否有任何滥用的可能性?

我不是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

我不记得是否对我们有效,但最坏的情况下,您可以创建一个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, 
     }; 
    }