从WCF服务返回MembershipUser

时间:2012-02-19 13:47:25

标签: c# .net wcf

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

编辑: 将此类型返回给客户端也是安全的。是否存在滥用的可能性?

2 个答案:

答案 0 :(得分:2)

我不是100%确定关于该类型是否可以序列化的具体答案......但只是试一试。如果出现错误,则只需创建一个包含您需要返回的所有信息的代理类型。并在您的WCF方法中返回: - )

答案 1 :(得分: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,
        };
    }