我们有一个调用客户端请求我们的系统没有将Bearer令牌放在标准位置('Authorization'标题)我想创建一个自定义处理程序,在正确的位置查找JWT.除了分支JwtBearerMiddleware实现是否有任何更清洁的方式我可以告诉中间件使用什么处理程序?
更简单的选择是通过在JWT中间件运行之前将JWT注入请求管道中的正确位置(请求头)来重写请求.但这似乎有点hacky.
.net asp.net-authorization jwt asp.net-core asp.net-core-middleware
我正在使用react-router-4.0.0-beta.4redux,我试图找出在路由更改上发送操作的最佳方法.我看到了几个版本前有一个API /事件挂钩,这在这里.但我发现它现在已经消失了.试着做现代的等价物redux-router.
我将X509Certificate存储在数据库(in byte[])中,以便我的应用程序可以检索证书并使用它来签署我的JWT.
我的x509Certificate是从我在我的机器上生成的.pfx文件传递出来的,但现在它作为字节串存在于数据库中.
我运行它时,我的应用程序在本地工作得很好.应用程序可以正确创建该X509Certificate2的实例并将其用于我的要求,但是当我尝试在我的azurewebsites Web应用程序中使用它时会出现问题.
基本上我无法访问证书的PrivateKey实例变量,我得到一个例外
System.Security.Cryptography.CryptographicException: Keyset does not exist
Run Code Online (Sandbox Code Playgroud)
我正在用这个重新实例化证书
var cert = new X509Certificate2(myCertInBytes, myCertPass,
X509KeyStorageFlags.PersistKeySet |
X509KeyStorageFlags.MachineKeySet |
X509KeyStorageFlags.Exportable);
Run Code Online (Sandbox Code Playgroud)
我正在使用ASPNET 5 rc1-update1.我也试过在另一台机器上运行它,它工作正常,只有在我发布到Azure时才会出现这个问题.并且还要添加其他内容,当我运行使用DNX版本beta7运行的相同项目时,此应用程序正在运行
任何帮助赞赏.
我首先获得了我的代码,SQL数据模型(使用EF Core 1.1),用于模拟我的模式/表.但是我也有域对象,它们是这些SQL数据模型的部分或完整映射版本,实质上它们具有与SQL数据模型相同的形状.
现在,我想知道当复杂对象在其被跟踪上下文的上下文之外被更改时,处理级联更新的最佳方法是什么.当您认为我的所有域操作都不在被跟踪的实体上进行时,它们就会发生在域对象上.
简而言之,这就是我想要实现的目标.
1)从数据库中读取实体.
2)将实体映射到域对象.
3)对域对象应用更新.
4)将域对象映射回实体.
5)对映射的实体应用数据库更新,这导致实体及其相关的相关实体被更新.
顺便说一下,实体和域对象具有可能遇到的典型的多对一关系.这样做的最佳方法是什么?
domain-driven-design repository-design repository-pattern entity-framework-core .net-core
我有一个非常简单的模型:
class Bag
{
public int Id { get; set; }
public ICollection<RandomThing> RandomThings { get; set; }
}
class RandomThing
{
public int Id { get; set; }
public String Description{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的上下文OnModelCreating(在EF 6中)是这样的:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Bag>()
.ToTable("Bag")
.HasMany(x => x.RandomThings).WithRequired(x => x.Bag).WillCascadeOnDelete();
modelBuilder.Entity<RandomThing>().ToTable("RandomThing");
}
Run Code Online (Sandbox Code Playgroud)
据我所知,没有相同的方法可以做到这一点.我知道不支持级联删除.但是,我想知道,在我的代码示例中定义的一对多关系建模的最佳方法是什么?似乎所有这些东西已经消失(或者尚未实施).
我已经看到了一个与我想要的完全一样的例子(这里)DbContext,但它实际上是错误的并且不起作用.如果我尝试下载该源代码,设置我的环境,并在带有帖子的博客实体上进行保存,那些帖子就不会像人们想象的那样得到保存.
这有什么变通方法吗?
如何将我的ASP.NET核心应用程序发布到Azure?
到目前为止我所做的是创建了一个脚本,我从官方的Azure/Microsoft文档中调用了一个脚本,该脚本调用了Visual Studio也使用的default-publish.ps1脚本.该脚本如下所示:
param($websiteName, $packOutput)
$website = Get-AzureWebsite -Name $websiteName
# get the scm url to use with MSDeploy. By default this will be the second in the array
$msdeployurl = $website.EnabledHostNames[1]
$publishProperties = @{'WebPublishMethod'='MSDeploy';
'MSDeployServiceUrl'=$msdeployurl;
'DeployIisAppPath'=$website.Name;
'Username'=$website.PublishingUsername;
'Password'=$website.PublishingPassword}
$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"
. $publishScript -publishProperties $publishProperties -packOutput $packOutput
Run Code Online (Sandbox Code Playgroud)
现在,此脚本将调用default-publish.ps1脚本,前提是您提供了Azure网站名称和dotnet发布工件.我已将default-publish.ps1脚本更新为目前repo中的内容.
问题是,当我发布到Azure时,会返回502 Bad Gateway错误.即使使用新工具更新创建的项目,我似乎也无法正确地将其发布到Azure.
我甚至不确定url重写是否适合我的用例,但我有一种感觉(使用Microsoft.AspNetCore.Rewrite).我有一个客户端,我的ASP.NET核心项目由UseStaticFiles()提供服务.这个项目default在我的启动配置方法中也使用MVC和路由如下:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}");
});
Run Code Online (Sandbox Code Playgroud)
我的客户端应用程序执行带外调用,该调用接收来自另一个服务的回调,并且此回调包含url/hash片段,以便客户端应用程序可以处理url/hash片段中的任何内容.让我们说这个服务回复/callback#foo='bar'.
只是更多的上下文,发生的事情是我的客户端应用程序正在从openid-connect提供程序进行登录,并且在登录时,会发生什么情况,您将被定向到提供程序,此提供程序将您重定向回您的应用程序哈希片段(成功登录时),所以当我的ASP.NET核心应用程序获取请求时,callback#foo=bar我希望它wwwroot使用哈希片段为我的静态应用程序提供服务,这样我的客户端应用程序就可以使用哈希片段(这是令牌)由提供者返回)
asp.net-core-mvc asp.net-core asp.net-core-middleware asp.net-core-webapi
我正在努力实现这一目标,但是我希望使用任何形式的非人工交互来启用诊断日志记录.我想在构建步骤中加入能够启用诊断日志记录的内容,默认情况下这些内容似乎已关闭.任何Powsershell(使用Azure RM)或visual studio团队服务构建可用于实现此目的的任务?
azure azure-diagnostics azure-web-sites azure-cli azure-web-app-service
我试图将我的域模型(负责我的业务逻辑)与我的数据模型分开,这是EF 7用来构建我的模式的.
关于将我的域模型的更改持久保存到我的数据库,我遇到了一个问题
所以例如,假设我有数据模型PersonTable和Domain模型Person:
public class PersonTable
{
public virtual Guid Id { get; set; }
public virtual String Name { get; set; }
public virtual String Surname { get; set; }
}
public class Person
{
public virtual Guid Id { get; set; }
public virtual String Name { get; set; }
public virtual String Surname { get; set; }
//Other Domain Methods and Constructors...
}
Run Code Online (Sandbox Code Playgroud)
我想通过这样做将我的域更改保留到我的数据库:
public void Update(Person p)
{
var person = new PersonTable
{
Id …Run Code Online (Sandbox Code Playgroud) 所以我有一个服务,比方说,它是ASPNET Core上的电子邮件服务.
当我将我的服务添加到ASPNET DI容器时,我想在我的IServiceCollection上应用以下模式来设置我的服务.
public interface IEmailService
{
void SendMail(string recipient, string message);
}
public void ConfigureServices(IServiceCollection services)
{
//configures my service
services.AddEmailService<MyEmailService>(options => options.UseEmailServer(sender, smtpHost, smtpPort, smtpPassword));
}
Run Code Online (Sandbox Code Playgroud)
我想知道如果可能的话,最好的方法是什么.我确信我需要为IServiceCollection上的.AddEmailService()方法创建扩展方法,但除此之外我不知道从哪里开始或看.
asp.net-core ×5
azure ×3
.net ×1
.net-core ×1
azure-cli ×1
c# ×1
jwt ×1
powershell ×1
react-redux ×1
react-router ×1
reactjs ×1