Tag: asp.net core

你如何在ASP 5(vnext)中抛出HttpResponseException

我正在ASP 5中编写一个api控制器。如果传递给服务的参数不正确,我想返回一个错误的请求代码exception。 在当前版本的webapi中,我会这样做: throw new HttpResponseException(HttpStatusCode.BadRequest); 但是HttpResponseException是System.Web一部分,它已从ASP 5中删除,因此我无法再实例化它。 在vNext中执行此操作的正确方法是什么?

将validation添加到MediatR行为管道?

我正在使用内置容器ASP.NET Core和支持“行为”管道的 MediatR 3: public class MyRequest : IRequest { // … } public class MyRequestHandler : IRequestHandler { public string Handle(MyRequest message) { return “Hello!”; } } public class MyPipeline : IPipelineBehavior { public async Task Handle(TRequest request, RequestHandlerDelegate next) { var response = await next(); return response; } } // in `Startup.ConfigureServices()`: services.AddTransient(typeof(IPipelineBehavior), […]

启用asp.net核心请求validation

我错过了什么或asp.net核心允许在用户文本字段中发布脚本标记? 在asp.net mvc的早期版本中,我需要通过[AllowHtml]属性允许它。 有没有办法如何启用validation再次具有潜在危险的价值? 我可以随意提交价值 在表格发布期间。 模型: using System.ComponentModel.DataAnnotations; namespace Test.Models { public class TestModel { [MaxLength(500)] public string Content { get; set; } } } 控制器: using Microsoft.AspNetCore.Mvc; using Test.Models; namespace Test.Controllers { public class HomeController : Controller { public IActionResult Index() { var model = new TestModel { Content = “Test” }; return […]

自定义validation属性:比较同一模型中的两个属性

有没有办法在ASP.NET Core中创建自定义属性,以使用ValidationAttributevalidation一个日期属性是否小于模型中的其他日期属性。 让我说我有这个: public class MyViewModel { [Required] [CompareDates] public DateTime StartDate { get; set; } [Required] public DateTime EndDate { get; set; } = DateTime.Parse(“3000-01-01”); } 我想尝试使用这样的东西: public class CompareDates : ValidationAttribute { public CompareDates() : base(“”) { } public override bool IsValid(object value) { return base.IsValid(value); } } 我发现其他SOpost建议使用另一个库,但如果可行,我更喜欢坚持使用ValidationAttribute。

在ASP.NET Core Web API中注册新的DelegatingHandler

我想创建一个新的Handler,它扩展了DelegatingHandler,使我能够在进入控制器之前做一些事情。 我已经在各个地方读过我需要从DelegatingHandlerinheritance,然后像这样覆盖SendAsync(): public class ApiKeyHandler : DelegatingHandler { protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // do custom stuff here return base.SendAsync(request, cancellationToken); } } 这一切都很好,花花公子除了它没有做任何事情,因为我没有在任何地方注册! 我再次在很多地方看到我应该在WebApiConfig.cs中这样做,但这不是Web API的ASP.NET 核心版本的一部分。 我试图找到类似于Startup.cs文件(Configure(),ConfigureServices()等)中的各种东西,但没有运气。 谁能告诉我如何注册我的新处理程序?

如何在.Net Core中不使用第三方记录器的情况下登录文件?

如何在.NET CORE中 不使用第三方记录器(serilog,elmah等)登录文件? public void ConfigureServices(IServiceCollection services) { services.AddLogging(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection(“Logging”)); loggerFactory.AddDebug(); }

如何将.xproj引用到.csproj?

我有.csproj项目,我想引用其他项目.xproj ,一切看起来都不错但是当我尝试构建解决方案时,我不能因为.dll丢失了。 当我从\bin\release\net452\…引用.dll ,一切都还可以。 如何解决? 编辑:我不是在寻找变通方法 – 现在我正在使用gulp.move()。 它工作正常但感觉很脏……

ASP.NET核心程序在IIS上无需发布即可运行

我以前使用asp.net mvc4并将我的解决方案目录指向我的IIS网站位置,每次更新我的代码时,我只需单击重新构建我的解决方案,然后使用w3wp的“附加到进程”。 在asp.net核心;当我将我的网站发布到文件系统时,我可以使用带有无托管代码的iis运行我的网站。但是当我将我的iis网站指向我的网站解决方案代码时,它显示502错误。 我以前安装过的所有asp.net核心模块。

如何从.net核心中的appsettings.json中提取列表

我有一个appsettings.json文件,如下所示: { “someSetting”: { “subSettings”: [ “one”, “two”, “three” ] } } 当我构建我的配置根,并执行类似config[“someSetting:subSettings”]它返回null,并且可用的实际设置如下所示: config[“someSettings:subSettings:0”] 有没有更好的方法来检索someSettings:subSettings的内容someSettings:subSettings作为列表?

ASP.NET Core 2.0 JWTvalidation因“用户授权失败:(null)”错误而失败

我正在使用ASP.NET Core 2.0应用程序(Web API)作为JWT发行者来生成移动应用程序的令牌消费品。 不幸的是,这个令牌无法由一个控制器validation,而另一个控制器可以validation(在同一个asp.net核心2.0应用程序中使用相同的validation设置)。 所以我有一个有效且可以解码的令牌,具有所有必需的声明和时间戳。 但是一个端点接受它,而另一个端点给我401错误和调试输出: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:信息:用户授权失败:(null)。 [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2] Authorization failed for user: (null). Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:Information: Authorization failed for user: (null). [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[3] Authorization failed for the request at filter ‘Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter’. Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Authorization failed for the request at filter ‘Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter’. Microsoft.AspNetCore.Mvc.ChallengeResult:Information: Executing ChallengeResult with authentication schemes (). [40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.ChallengeResult[1] Executing ChallengeResult with authentication schemes (). […]