Tag: asp.net core

将客户端证书添加到.net核心Httpclient

我正在玩.Net Core并构建一个利用支付API的API。 需要将客户端证书添加到双向SSL身份validation请求中。 如何使用HttpClient在.Net Core中实现这一目标? 我查看了各种文章,发现HttpClientHandler没有提供添加客户端证书的任何选项。 请指教

在ASP.NET MVC Core项目中使用View内部的C#7function

我已经找到了与此相关的其他问题,但似乎没有一个我正在寻找的东西。 我有一个在ASP.NET Core上运行的网站,其中包含VS2017中的新项目结构。 使用C#7的代码文件function编译正常。 但是,尝试在View中使用这些function会导致一系列有关语法的错误。 我尝试安装Roslyn以便在编译视图时使用它,因为我可以告诉我,Roslyn nuget包2.x及更高版本中提供了C#7function。 但现在我得到明确说明的反馈 错误CS8059:C#6中没有function’输出变量声明’。请使用语言版本7或更高版本。 在过去,我会检查web.config,但是在ASP.NET核心项目中没有web.config,而是根目录中的几乎空的,用于处理来自IIS的请求。 我如何表明我的视图应该用Roslyn编译,因为直到运行时才能完成? 至少我认为这会解决我的问题。 编辑:这个问题与此不重复,正如我在开始时提到的那样,我也在寻找现有的问题。 这是在编译时在您的应用程序中专门启用C#7function,并且仅适用于ASP.NET应用程序。 我正在使用ASP.NET Core,它没有web.config,其中定义了任何编译设置。 另外,我正在尝试为在运行时编译的视图执行此操作,并且可能在不同的系统上。 解: 对于任何感兴趣的人,您必须将Roslyn添加到您的项目中(我知道),但您还必须配置RazorViewEngineOptions以使用指示语言版本的CSharpParseOptions (默认值为6)。 我做过这个,但我做得不对。 我需要将WithLanguageVersion()的结果分配回ParseOptions以替换它们。 services.AddMvc().AddRazorOptions(options => options.ParseOptions = options.ParseOptions.WithLanguageVersion(LanguageVersion.CSharp7));

ASP.NET 5中的Web API身份validation

我一直在研究ASP.NET 5已经有一段时间了,还有一些我很困惑的事情。 要在Web API 2中实现身份validation,我过去基本上使用的是OWIN OAuth身份validation服务器中间件。 它使用起来很简单,我可以配置我需要的东西,而且我不需要在应用程序上放置一堆东西而不需要它。 现在,起初我没有在ASP.NET 5中找到它,我认为等待中间件出现是一个时间问题。 但昨天,在阅读有关安全回购的问题时,我发现显然无意将此中间件移植到新版本的框架中。 相反,似乎鼓励人们使用Identity Server 3.我看了一下项目,虽然它很好并且有很多用法我真的更喜欢配置我有时需要的最小值。 另外,另一个缺点是Identity Server 3需要完整的CLR,所以如果我需要使用它来为我的应用程序提供身份validation,我需要停止使用Core CLR,这对我来说是一个巨大的劣势,因为Core CLR是一个更轻巧。 因此,如果我不想在ASP.NET 5上使用Identity Server 3,如果OAuth Authentication Server中间件消失,如何为Web API实现身份validation? 有没有人通过这个并找到了处理它的方法? 如何在不使用Identity Server 3的情况下处理ASP.NET 5 Web API上的身份validation?

使用不同的程序集添加迁移

我正在ASP.NET CORE 1.0.0中做一个项目,我正在使用EntityFrameworkCore。 我有单独的程序集,我的项目结构如下所示: ProjectSolution -src -1 Domain -Project.Data -2 Api -Project.Api 在我的Project.Api是Startup类 public void ConfigureServices(IServiceCollection services) { services.AddDbContext(); services.AddIdentity() .AddEntityFrameworkStores() .AddDefaultTokenProviders(); } DbContext在我的Project.Data项目中 public class ProjectDbContext : IdentityDbContext { public ProjectDbContext(DbContextOptions options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var builder = new ConfigurationBuilder(); builder.SetBasePath(Directory.GetCurrentDirectory()); builder.AddJsonFile(“appsettings.json”); IConfiguration Configuration = builder.Build(); optionsBuilder.UseSqlServer( […]

ASP.NET 5中Global.json中项目部分的说明

我注意到在创建一个新的ASP.NET 5项目时,有一个对我来说完全有意义的src目录,因为我总是将所有解决方案的代码放在一个名为source的目录中。 我注意到有一个名为global.json的文件,默认情况下包含以下内容: { “projects”: [ “src”, “test” ], “sdk”: { “version”: “1.0.0-rc1-update1” } } 我在ASP.NET 5文档中找到了以下内容: projects属性指定哪些文件夹包含解决方案的源代码。 默认情况下,项目结构将源文件放在src文件夹中,允许将构建工件放在兄弟文件夹中,从而更容易从源代码控制中排除这些内容。 但是,这里是我想到的项目结构(它基本上是我想在同一解决方案下的两个大项目): MySolution MySolutionProject1Src client p1.WebAPI business p1.Business p1.Model data p1.Repository test p1.BusinessTests p1.WebAPITests MySolutionProject2Src client p2.Web business p2.Business p2.Model data p2.Repository test p2.BusinessTests 那么我会将global.json更新为以下内容吗? (每个父目录一个): { “projects”: [ “MySolutionProject1Src”, “MySolutionProject2Src” ], “sdk”: { “version”: “1.0.0-rc1-update1” } […]

ASP.Net Core MVC – 自定义属性的客户端validation

在以前版本的MVC框架中,将通过实现IClientValidatable和GetClientValidationRules方法来实现自定义validation。 但是在ASP.Net Core MVC中我们没有这个接口 ,尽管我们确实有IClientModelValidator ,它定义了一个非常相似的方法。 然而,其实现永远不会被调用。 那么 – 我们如何在ASP.NET Core MVC中为自定义属性实现客户端validation?

Identity Server 4授权代码流示例

我正在尝试使用授权代码流实现带有AspNet Core的Identity Server 4。 问题是,github上的IdentityServer4存储库有几个样本,但没有一个带有授权代码流 。 有没有人有关于如何使用Identity Server 4和MVC中的客户端实现授权代码流的示例?

ASP.NET MVC 6中MVC Controller和Web API Controller有什么区别?

在ASP.NET 5 MVC 6中,Microsoft将普通的MVC控制器类( Controller )与Web Api控制器类( ApiController ) ApiController 。 现在只有一个inheritance的Controller类,其中也包含了WebApi的function。 所以现在区分MVC和WebApi控制器并不是那么简单。 两者都inheritance自Controller类。 我能看到的唯一区别是WebApi的路由信息​​仍然由属性HttpGet , HttpPost , HttpPut和HttpDelete 。 但现在可以使用属性路由对MVC控制器执行相同操作,只需使用不同的属性。 甚至这些function似乎已合并。 MVC控制器现在也支持内容协商。 具体问题是: 是否仍然存在真正的差异,还是只是指定路线的方式? 现在哪种方式是创建网络应用程序的首选方式? (差不多)空的MVC控制器: public class HomeController : Controller { public List Index() { return new List() { new Person() {Firstname = “test1”, Lastname = “test2”}, new Person() {Firstname = “test3”, Lastname […]

在ASP.NET Core中使用Swagger中的JWT(授权:承载)

我正在ASP.NET Core 1.0中创建一个REST api。 我正在使用Swagger进行测试,但现在我为某些路线添加了JWT授权。 (使用UseJwtBearerAuthentication ) 是否可以修改Swagger请求的标头,以便可以测试具有[Authorize]属性的路由?

ASP.NET MVC 6:在单独的程序集中查看组件

我想在MVC 6 Web启动项目的单独程序集中定义视图组件(ASP.NET MVC 6中的新组件),以便我可以在多个Web项目中重用它们。 示例解决方案可能如下所示: BookStore.Components (容纳常见视图组件) BookStore.Web1 (引用BookStore.Components) BookStore.Web2 (引用BookStore.Components) 我创建了一个新的类库(Package)并在其中创建了一个视图组件。 我还在嵌套文件夹约定之后创建了视图。 我的BookStore.Components项目如下所示: 当我尝试从我的Web项目中调用此视图组件时: @Component.Invoke(“BookOfTheMonth”) …我的内容正文出现了500错误。 似乎发现了ViewComponent类,但组件的剃刀视图却没有。 我还尝试扩展DefaultViewComponentDescriptorProvider以便可以发现BookStore.Components程序BookStore.Components视图组件: 定义了AssemblyProvider public class AssemblyProvider : IAssemblyProvider { public IEnumerable CandidateAssemblies { get { yield return typeof(AssemblyProvider).Assembly; yield return typeof(BookStore.Components.BookOfTheMonthViewComponent).Assembly; } } } 使用Autofac注册的AssemblyProvider builder.RegisterType() .AsImplementedInterfaces(); builder.RegisterType() .AsImplementedInterfaces(); 我不确定是否需要注册上面的DefaultViewComponentDescriptorProvider ,所以我尝试使用和不使用它,但我仍然在调用视图组件的页面上得到500错误。 如何从MVC6 Web项目中调用位于单独程序集中的视图组件?