代码之家  ›  专栏  ›  技术社区  ›  Nirman

ASP.NET MVC 5-WCF中的IdentityUser?

  •  1
  • Nirman  · 技术社区  · 11 年前

    我目前正在编写一个WCF服务,该服务将使用ASP.NET标识来执行所有成员资格和声明相关的工作。(即,将通过调用此WCF执行身份验证、注册和所有操作)

    [DataContract(IsReference=true)]
    public class ApplicationUser: IdentityUser
    {
        [DataMember]
        public string FirstName { get; set; }
        [DataMember]
        public string LastName { get; set; }
        [DataMember]
        public string Email { get; set; }
    }
    

    问题是“IdentityUser”是Microsoft.Aspnet.Identity.Core.Entityframework程序集中的一个类,并且该类未标记DataContract属性。 我正在我的 WCF服务将ApplicationUser返回到调用网站。

    你知道如何做到这一点吗?

    1 回复  |  直到 11 年前
        1
  •  2
  •   Kevin Junghans    11 年前

    创建具有与ApplicationUser类具有相同财产的数据协定的数据传输对象(DTO)。您必须从DTO转换为ApplicationUser,反之亦然。使用AutoMapper进行变换。

    就我个人而言,我看不到在WCF web服务背后设置安全性的真正好处。每次授权的网络跳转和序列化/反序列化都会影响您的web应用程序。

    将其分离到不同的层是一个好主意,但该层不一定是web服务。看看 SimpleSecurity 。它提供了ASP.NET标识之上的一层,并演示了如何自定义它以进行电子邮件确认和其他增强功能。您的授权功能不适合分发,因为web客户端的每个请求都会命中它。