Questions tagged «asp.net-core-webapi»

有关不依赖于MVC视图或Razor页面的ASP.NET Core Web API和Web应用程序的问题

4
RS256 vs HS256:有什么区别?
我正在使用Auth0在我的Web应用程序中处理身份验证。我正在使用ASP.NET Core v1.0.0和Angular 2 rc5,而我一般对身份验证/安全性了解不多。 在ASP.NET Core Web Api的Auth0文档中, JWT算法有两个选择:RS256和HS256。这可能是一个愚蠢的问题,但: RS256和HS256有什么区别?有哪些用例(如果适用)?

10
ASP.NET Core返回带有状态码的JSON
我正在寻找在.NET Core Web API控制器中以HTTP状态代码返回JSON的正确方法。我曾经这样使用它: public IHttpActionResult GetResourceData() { return this.Content(HttpStatusCode.OK, new { response = "Hello"}); } 这是一个4.6 MVC应用程序,但现在随着.NET核心我似乎没有这个IHttpActionResult我有ActionResult和使用这样的: public ActionResult IsAuthenticated() { return Ok(Json("123")); } 但是服务器的响应很奇怪,如下图所示: 我只希望Web API控制器像在Web API 2中一样返回带有HTTP状态代码的JSON。

3
在ASP.Net Core Web API中返回文件
问题 我想在ASP.Net Web API控制器中返回一个文件,但是我所有的方法都将其返回HttpResponseMessage为JSON。 到目前为止的代码 public async Task<HttpResponseMessage> DownloadAsync(string id) { var response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StreamContent({{__insert_stream_here__}}); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); return response; } 当我在浏览器中调用此终结点时,Web API会将HttpResponseMessageHTTP内容标头设置为,以JSON形式返回application/json。

5
如何从控制器返回特定的状态代码而没有内容?
我希望下面的示例控制器返回没有内容的状态代码418。设置状态码很容易,但是似乎需要做一些事情以发出请求结束的信号。在ASP.NET Core之前的MVC或WebForms中,这可能是Response.End()对它的调用,但是在Response.End不存在的ASP.NET Core中它如何工作? public class ExampleController : Controller { [HttpGet][Route("/example/main")] public IActionResult Main() { this.HttpContext.Response.StatusCode = 418; // I'm a teapot // How to end the request? // I don't actually want to return a view but perhaps the next // line is required anyway? return View(); } }

4
从显式类型的ASP.NET Core API控制器(不是IActionResult)返回404
ASP.NET Core API控制器通常返回显式类型(如果创建新项目,则默认情况下会这样做),例如: [Route("api/[controller]")] public class ThingsController : Controller { // GET api/things [HttpGet] public async Task<IEnumerable<Thing>> GetAsync() { //... } // GET api/things/5 [HttpGet("{id}")] public async Task<Thing> GetAsync(int id) { Thing thingFromDB = await GetThingFromDBAsync(); if(thingFromDB == null) return null; // This returns HTTP 204 // Process thingFromDB, blah …

3
枚举类型不再在.Net Core 3.0 FromBody请求对象中工作
我最近将Web API从.Net core 2.2升级到了.Net core 3.0,并注意到当我在端点中将枚举传递给端点时,我的请求现在出错了。例如: 我的api端点具有以下模型: public class SendFeedbackRequest { public FeedbackType Type { get; set; } public string Message { get; set; } } FeedbackType如下所示: public enum FeedbackType { Comment, Question } 这是控制器方法: [HttpPost] public async Task<IActionResult> SendFeedbackAsync([FromBody]SendFeedbackRequest request) { var response = await _feedbackService.SendFeedbackAsync(request); return Ok(response); } …

2
如何获取.NET Core 3单文件应用程序以查找appsettings.json文件?
如何配置单文件.Net Core 3.0 Web API应用程序以查找appsettings.json与创建单文件应用程序相同的目录中的文件? 跑步后 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true 该目录如下所示: XX/XX/XXXX XX:XX PM <DIR> . XX/XX/XXXX XX:XX PM <DIR> .. XX/XX/XXXX XX:XX PM 134 appsettings.json XX/XX/XXXX XX:XX PM 92,899,983 APPNAME.exe XX/XX/XXXX XX:XX PM 541 web.config 3 File(s) 92,900,658 bytes 但是,尝试运行会APPNAME.exe导致以下错误 An exception occurred, System.IO.FileNotFoundException: The configuration …

5
NET Core 3.0的JWT身份验证和Swagger
我正在使用.Net core 3.0开发一些Web Api,并希望将其与SwashBuckle.Swagger集成。它工作正常,但是当我添加JWT身份验证时,它无法按我预期的那样工作。为此,我添加了以下代码: services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "My Web API", Version = "v1" }); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey }); }); 添加AddSecurityDefinition功能后,我可以看到“授权”按钮,当我单击它时,会看到以下表单: 然后输入Bearer …

1
澄清IAsyncEnumerable如何与ASP.NET Web API一起使用
在ASP.NET Web API项目中浏览IAsyncEnumerable时遇到了一个有趣的行为。考虑以下代码示例: // Code Sample 1 [HttpGet] public async IAsyncEnumerable<int> GetAsync() { for (int i = 0; i < 10; i++) { await Task.Delay(1000); yield return i; } } // Code Sample 2 [HttpGet] public async IAsyncEnumerable<string> GetAsync() { for (int i = 0; i < 10; i++) { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.