IdentityUser不序列化Web API



不确定这里发生了什么。

我正在通过Web API项目公开身份功能。CRUD方面将接触到管理应用程序和登录名,在公共面向应用中注册。

现在,我只是试图通过Web API控制器操作返回数据库中所有用户的列表。我对响应没有任何输出,但是我确实从服务中获取数据:

        /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    [Route("")]
    public async Task<IHttpActionResult> GetAllUsers()
    {
        var model = await _userService.GetAllUsers(); //<---Gets List<AppUser> here?
        return Ok(model);
    }

此动作在提琴手或邮递员上什么都没有显示?

有什么想法吗?

   public class AppUser : IdentityUser
   {
        public DateTime Created { get; set; }
   }

关于身份用户类有什么特别的东西可以防止其序列化?

这是Web API序列化配置:

config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
        config.Formatters.Add(new JsonFormatter());

    }
    public class JsonFormatter : JsonMediaTypeFormatter
    {
        public JsonFormatter()
        {
            this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
            this.SerializerSettings.Formatting = Formatting.Indented;
        }
        public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType)
        {
            base.SetDefaultContentHeaders(type, headers, mediaType);
            headers.ContentType = new MediaTypeHeaderValue("application/json");
        }
    }

找到了我的答案。身份使用者类并不是要在API上暴露的。大量敏感数据和全部。

但是,这将坐在防火墙后面,我不想写DTO和映射器只是为了进行这项工作。

答案在这里解释

基本上,您只需要覆盖要暴露的属性,然后使用datamember属性进行序列化装饰它们。

相关内容

  • 没有找到相关文章

最新更新