asp.net-web-api相关内容

启用 Windows 身份验证的 IIS 中的 CORS 请求的 401 响应

我正在尝试在我的 WebAPI 项目中启用 CORS 支持,如果我启用匿名身份验证,那么一切正常,但是在 Windows Auth + 禁用匿名身份验证的情况下,发送的 OPTIONS 请求总是返回 401 未经授权的响应.请求它的站点在 DOMAIN 上,因此应该能够拨打电话,有没有办法在不禁用 Windows 身份验证的情况下解决这个问题? 解决方案 来自MS: 如果您禁用匿名身 ..

ASP.Net MVC 6 中的全局错误日志记录

我正在测试一个 MVC 6 Web Api,并希望将日志记录到一个全局错误处理程序中.只是保证没有错误会在没有被记录的情况下离开系统.我创建了一个 ExceptionFilterAttribute 并在启动时全局添加: 公共类 AppExceptionFilterAttribute : ExceptionFilterAttribute{公共覆盖无效 OnException(ExceptionCo ..
发布时间:2022-01-13 12:59:23 C#/.NET

如何在 ASP.NET Core 中以不同方式处理(或区分)API 调用和 MVC(视图)调用的错误

在我基于普通 MVC 和 WebApi 的应用程序中,我有两种不同的错误处理路径. 如果在 WebApi 调用期间发生错误,我会拦截它(使用标准 Web api 选项)并返回带有相应 HTTP 状态代码的 json 消息,以便客户端应用程序可以处理它. 如果错误发生在 MVC 中,那么我将使用一些标准处理程序,这些处理程序会将用户重定向到可能基于状态代码的某个默认错误屏幕. 现在 ..

Azure Web 应用服务使用 HttpClient 使用混合连接管理器调用本地 WEB API

我们在本地网络机器上部署了本地 Web 服务 (asp.net core mvc).我们正在尝试使用部署在 Azure 上的 App Service 调用这些 WEB API.但如果我们尝试使用“HTTP"协议连接它,则会出现超时错误或 Task was cancelled 错误.如果是“HTTPS",则会给出“security error occurred error". 我们在 Azur ..
发布时间:2022-01-13 12:22:06 C#/.NET

ASP.NET Core Identity 不注入 UserManager<ApplicationUser>

我有一个较旧的 asp.net 核心身份数据库,我想将一个新项目(一个 web api)映射到它. 为了测试,我从上一个项目中复制了 Models 文件夹和 ApplicationUser 文件(ApplicationUser 只是继承自 IdentityUser,没有任何更改)——首先做 DB 似乎是个坏主意. 我正在 ConfigureServices 中注册身份(但我没有将其添加 ..

ASP.net Core RC2 Web API POST - 何时使用 Create、CreatedAtAction 和 CreatedAtRoute?

这些功能的根本区别是什么?我只知道这三个结果都是 201,这适用于成功的 POST 请求. 我只关注我在网上看到的示例,但他们并没有真正解释他们为什么要做他们正在做的事情. 我们应该为我们的 GET 提供一个名称(1 条记录按 id): [HttpGet("{id}", Name="MyStuff")]公共异步任务GetAsync(int id){返回新 ..

JSON.Net 自定义合约序列化和集合

我正在尝试创建一个 IContractResolver 来简化我对 WebApi 项目的安全处理. 我正在尝试什么: 我想根据一组动态条件(例如调用端点的用户的角色)序列化某些对象/属性. 所以我实现了一个在接口的 CreateProperty 覆盖中检查的自定义属性,并将 ShouldSerialize 函数设置为我自己的逻辑. 我现在的问题是,是否可以有条件地序列化某个 ..
发布时间:2022-01-11 22:37:37 C#/.NET

在自定义 json 转换器中访问 .NET 类的自定义属性

在我的项目中,我编写了一个自定义 json 转换器来修剪字符串属性中存在的空格. 这是我们将使用的典型类的示例, 公开课候选人{公共字符串候选人姓名{获取;放;}} 这是我的自定义 json 转换器 公共类 StringSanitizingConverter : JsonConverter{公共覆盖 bool CanConvert(Type objectType){返回 objectT ..
发布时间:2022-01-11 22:36:58 其他开发

在 Json.net 中全局设置 IgnoreSerializableAttribute

我正在开发一个 ASP.NET WebApi (Release Candidate) 项目,我正在使用多个标有 [Serializable] 属性的 DTO.这些 DTO 不在我的控制范围内,因此我无法以任何方式修改它们.当我从 get 方法返回其中任何一个时,生成的 JSON 包含一堆 k__BackingFields,如下所示: k__BackingField=Bobby ..
发布时间:2022-01-11 22:30:48 其他开发

你怎么“真的"?使用 Newtonsoft.Json 序列化循环引用对象?

我在使用 Newtonsoft.Json 从我的 ASP.NET Web API 控制器正确序列化一些数据时遇到问题. 这就是我认为正在发生的事情 - 如果我错了,请纠正我.在某些情况下(特别是当数据中没有任何循环引用时)一切都像您期望的那样工作 - 填充对象的列表被序列化并返回.如果我在模型中引入导致循环引用的数据(如下所述,即使设置了 PreserveReferencesHandling ..
发布时间:2022-01-11 22:30:41 C#/.NET

如何让 JSON.NET 将日期/时间序列化为 ISO 8601?

我有一个 Web API 应用程序,可将 JSON 返回给可能未使用 Microsoft 技术的消费者.当我的控制器以 JSON 形式返回具有 DateTime 属性的对象时,它会以这种格式序列化日期: 2017-03-15T00:00:00-04:00 这让消费者有点头疼,因为他们希望它采用 ISO 8601 格式.一些研究告诉我 JSON.NET 现在默认使用 ISO 8601(我 ..
发布时间:2022-01-11 22:29:46 其他开发

在返回给客户端之前修改 JSON 的通用方法

我正在寻找一种通用方法,该方法允许我修改返回给客户端的对象的 JSON,特别是删除返回对象中的某些属性.类似于 这里的建议. 修改是不确定的,因为它们是根据与用户关联的规则根据请求确定的.所以这不适合缓存的方法. 我已经查看了几种方法.最明显的选择是 JsonConverter,但是这有一些问题,如 here,这里和这里. 这种方式的主要问题是在WriteJson中调用JToke ..
发布时间:2022-01-11 22:24:57 C#/.NET

Web API 序列化从小写字母开始的属性

如何配置我的 Web API 的序列化以使用 camelCase(从小写字母开始)属性名称,而不是像在 C# 中那样使用 PascalCase. 我可以为整个项目全局做吗? 解决方案 如果你想改变 Newtonsoft.Json aka JSON.NET 中的序列化行为,你需要创建你的设置: var jsonSerializer = JsonSerializer.Create(ne ..
发布时间:2022-01-11 22:16:46 C#/.NET

Json.NET 序列化中是否有办法区分“null 因为不存在"?和“空,因为空"?

我在一个 ASP.NET webapi 代码库中工作,我们严重依赖通过 JSON.NET 将消息体的 JSON 反序列化为 .NET 对象的自动支持. 作为为我们的资源之一构建补丁支持的一部分,我非常想区分 JSON 对象中不存在的可选属性与明确为 null 的相同属性.我的意图是将第一个用于“不要改变那里的东西"与“删除这个东西". 有谁知道是否可以标记我的 C# DTO,以便在反序 ..
发布时间:2022-01-11 22:01:09 C#/.NET

JSON序列化类继承列表上的属性

我有一个模型如下: 公共类TestResultModel{公共布尔成功{得到;放;}公共字符串错误消息 { 获取;放;}}公共类 TestResultListModel : 列表{公共 int TotalTestCases { get { return base.Count;} }public int TotalSuccessful { get { return ..
发布时间:2022-01-11 21:55:45 C#/.NET

检测到自引用循环 - 从 WebApi 取回数据到浏览器

我正在使用 Entity Framework,但在将父子数据传输到浏览器时遇到问题.这是我的课程: 公开课题{公共 int QuestionId { 获取;放;}公共字符串标题 { 获取;放;}公共虚拟ICollection答案{得到;放;}}公开课答案{公共 int AnswerId { 获取;放;}公共字符串文本 { 获取;放;}公共 int QuestionId { 获取 ..
发布时间:2022-01-11 21:50:49 C#/.NET