问题标签 [asp.net-core-webapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
20250 浏览

asp.net-core - 读取请求正文两次

我正在尝试读取中间件中的主体以进行身份​​验证,但是当请求到达 api 控制器时,对象为空,因为主体已被读取。有没有办法解决。我正在我的中间件中读取这样的正文。

0 投票
5 回答
27149 浏览

asp.net-core - 访问原始请求正文

我正在尝试在 ASP.net 5 中访问请求的原始输入正文/流。过去,我能够将输入流的位置重置为 0 并将其读入内存流,但是当我尝试这样做时从上下文来看,输入流要么为空,要么引发错误(System.NotSupportedException =>“不支持指定的方法。”)。

在下面的第一个示例中,如果我将控制器方法的参数对象类型声明为动态,我可以访问控制器中的原始请求。由于各种原因,这不是一个解决方案,无论如何我都需要访问身份验证过滤器中的原始请求正文。

此示例有效,但不是合理的解决方案:

引发错误:

引发错误:

引发错误:

我需要访问我正在构建的 API 的每个请求的原始请求正文。

任何帮助或方向将不胜感激!

编辑:

这是我想读取请求正文的代码。

当调用标记有 CustomAuthorization 属性的控制器方法时,将访问此代码,如下所示。

0 投票
1 回答
2394 浏览

c# - ASP.NET Core Web API - 当类的成员是接口时,参数绑定不起作用

我的 Web API 控制器中有一个方法:

我能够调用该方法,但参数始终为空。注册类定义为:

似乎 Registration 的 Student 属性是一个接口是造成这种情况的原因,因为当我尝试用具体类型替换它时,它绑定得很好。

使用接口时如何进行此绑定?另外,在我原来的 Web API 上,我接受了一个注册类型的参数。是否也可以将其作为接口(IRegistration)并仍然绑定?

0 投票
2 回答
7232 浏览

c# - ASP.Net Core Web API 捕获用于记录的 HTTP 请求

我很难在 ASP.NET Core Web API 中捕获用于记录目的的 HTTP 请求。我在这里找到了一个例子

http://dotnetliberty.com/index.php/2016/01/07/logging-asp-net-5-requests-using-middleware/

这有帮助。它基本上是一个使用中间件功能添加到 HTTP 请求管道的日志记录类。问题是类方法只在应用程序启动时被调用。我无法在我的任何 get 或 post http 请求上调用它。get 或 post http 请求正在工作,因为我可以调试并且响应正常,我尝试在控制台应用程序中使用 Fiddler 和 http 客户端。

这是我的日志记录类

这是我的 Startup.cs 类中的 Startup.Configure 方法

最后一行是我使用 app.UseMiddleware 捎带回 HTTP 请求的地方。我认为这应该可行,但是如果有人知道为什么它不可行或替代方案会很棒。请让我知道您是否应该提供其他信息。

0 投票
5 回答
220149 浏览

c# - 如何从控制器返回特定的状态码并且没有内容?

我希望下面的示例控制器返回没有内容的状态代码 418。设置状态码很容易,但似乎需要做一些事情来表示请求的结束。在 ASP.NET Core 之前的 MVC 或 WebForms 中可能会调用但它在不存在Response.End()的 ASP.NET Core 中如何工作?Response.End

0 投票
1 回答
193 浏览

asp.net-core - WebApi 未在 ASP.NET Core RC2 项目中加载

迁移到 RC2 后,我们在加载/托管 WebAPI 服务时遇到了一些问题。之前的迁移相同的 WebAPI 工作正常。我们已按照以下URL进行迁移的步骤

当我尝试在调试模式下在 IISExpress 中启动应用程序时,我能够调试应用程序,即 Program.cs 正在执行,然后控制转到 startup.cs 方法/事件,然后最后返回执行语句主机。跑(); 在 program.cs 文件中。但是在执行此语句后,我无法获取/调试任何在后台执行的语句,但最后我能感觉到的是内部它正在后台进入无限循环并且服务没有启动。我没有尝试在 IIS 中托管,在 IISExpress 本身工作的第一步在这里不起作用。下面的代码我在 Program.cs 文件中

任何想法这里发生了什么以及问题可能出在哪里?

注意:相同的迁移步骤已适用于其他一些 WebAPI 项目,问题仅在此应用程序中

0 投票
1 回答
4562 浏览

asp.net-core-mvc - 在 IdentityServer4 的声明主体中获取访问令牌声明

我试图了解 oAuth2/IdentityServer4。

使用https://github.com/IdentityServer/IdentityServer4.Samples/tree/dev/Quickstarts/3_ImplicitFlowAuthentication上的示例应用程序

MVC 应用程序中的以下代码:

返回似乎是身份令牌声明的内容

nbf
1467173142
exp
1467173442
iss
http://localhost:5000
aud
mvc
nonce
636027699106782287.MDI0YzI5MTQtYmQxNy00MDllLWJmYzQtZjBhYzI2MGNjYmE3MDFmNzg1YmUtM2Y5ZC00YjBiLWEzOGItN2Q3ODRiODJlYjFl
iat
1467173142
c_hash
H2i5QeJKlHM5-s8vUTYlOw
sid
42b58d38e2b7c6cc653492742a08840b
sub
818727
auth_time
1467170555
idp
idsvr
name
Alice Smith
given_name
Alice
family_name
Smith
website
http://alice.com
amr
pwd

API项目中的以下代码

返回似乎是访问令牌声明的内容

请注意,代码本质上是相同的(在用户身份原则中返回声明)并且缺少名称/电子邮件,但在 API 示例中包含范围声明。

令牌流本质上是 IdentityServer4 => MVC Project => API Project。显然 MVC 项目同时具有 identityToken 和访问令牌,但它没有加载访问令牌 int User.Claims。

我的目标是在 MVC 项目中的 User 中提供范围声明,以便我可以设置策略来处理我的 MVC 方法的 Authorize 属性部分。

API 项目的启动在这里:https ://github.com/IdentityServer/IdentityServer4.Samples/blob/dev/Quickstarts/3_ImplicitFlowAuthentication/src/Api/Startup.cs

MVC 项目的启动在这里: https ://github.com/IdentityServer/IdentityServer4.Samples/blob/dev/Quickstarts/3_ImplicitFlowAuthentication/src/Api/Startup.cs

谢谢,戴夫

0 投票
3 回答
4892 浏览

asp.net-core - 为什么身份验证类型 - 当我们创建新的 Web APi 服务时,.NET Core 中 Web API 的个人用户帐户不可用

为什么无法创建具有个人用户帐户授权类型的 Web API 项目?

屏幕截图:更改身份验证对话框

0 投票
2 回答
7866 浏览

asp.net - ASP.NET Core Web Api 自动帮助页面

在以前的 ASP.NET 版本中,当我创建 Web Api 2 时,Visual Studio 自动连接了 API 文档的自动生成。

这里也有解释: http ://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/creating-api-help-pages

我正在编写一个新项目,我决定使用 ASP.NET Core 来完成,但我没有看到任何类似于以前版本中存在的从 API 生成文档的东西(我也猜这是它有点不同,因为所有控制器现在都继承自同一个Controller类)。

但是,有没有办法为 ASP.NET Core API 生成帮助文件?

0 投票
1 回答
536 浏览

c# - WebAPI 核心有任何 ResponseCacheAttribute 吗?

我目前正在使用 WebAPI 2 并考虑升级到 ASP.Net Core。

当我到达Http Caching主题时,我注意到 asp.net 核心只有一个ResponseCacheAttribute(这是一个 MVC 属性)并且没有 WebApi 的并行属性。

我的问题是:

一种。由于从ApiControllerMvcController到unity 的转变Controller,MVC 属性是否适用于 WebApi 操作?

湾。如果没有,是否有实现 WebApi 的替代方案?