小编Lut*_*ndo的帖子

JwtBearerMiddleware的自定义令牌位置

我们有一个调用客户端请求我们的系统没有将Bearer令牌放在标准位置('Authorization'标题)我想创建一个自定义处理程序,在正确的位置查找JWT.除了分支JwtBearerMiddleware实现是否有任何更清洁的方式我可以告诉中间件使用什么处理程序?

更简单的选择是通过在JWT中间件运行之前将JWT注入请求管道中的正确位置(请求头)来重写请求.但这似乎有点hacky.

.net asp.net-authorization jwt asp.net-core asp.net-core-middleware

12
推荐指数
1
解决办法
1618
查看次数

如何使用react router v4调度位置更改操作

我正在使用react-router-4.0.0-beta.4redux,我试图找出在路由更改上发送操作的最佳方法.我看到了几个版本前有一个API /事件挂钩,这在这里.但我发现它现在已经消失了.试着做现代的等价物redux-router.

reactjs react-router react-redux

11
推荐指数
1
解决办法
3684
查看次数

无法在Azure中访问我的X509Certificate2的PrivateKey

我将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运行的相同项目时,此应用程序正在运行

任何帮助赞赏.

azure x509certificate azure-web-sites asp.net-core

10
推荐指数
1
解决办法
1897
查看次数

处理映射对象的实体更新

我首先获得了我的代码,SQL数据模型(使用EF Core 1.1),用于模拟我的模式/表.但是我也有域对象,它们是这些SQL数据模型的部分或完整映射版本,实质上它们具有与SQL数据模型相同的形状.

现在,我想知道当复杂对象在其被跟踪上下文的上下文之外被更改时,处理级联更新的最佳方法是什么.当您认为我的所有域操作都不在被跟踪的实体上进行时,它们就会发生在域对象上.

简而言之,这就是我想要实现的目标.

1)从数据库中读取实体.

2)将实体映射到域对象.

3)对域对象应用更新.

4)将域对象映射回实体.

5)对映射的实体应用数据库更新,这导致实体及其相关的相关实体被更新.

顺便说一下,实体和域对象具有可能遇到的典型的多对一关系.这样做的最佳方法是什么?

domain-driven-design repository-design repository-pattern entity-framework-core .net-core

9
推荐指数
1
解决办法
459
查看次数

EF 7 beta 6:EF 7中具有一对多关系的实体

我有一个非常简单的模型:

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,但它实际上是错误的并且不起作用.如果我尝试下载该源代码,设置我的环境,并在带有帖子的博客实体上进行保存,那些帖子就不会像人们想象的那样得到保存.

这有什么变通方法吗?

c# entity-framework entity-framework-core

8
推荐指数
1
解决办法
4907
查看次数

通过PowerShell将Azure Core应用程序发布到Azure,在Azure中获取502(Bad Gateway)

如何将我的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.

powershell azure asp.net-core

8
推荐指数
1
解决办法
575
查看次数

UrlRewrite中间件和客户端应用程序

我甚至不确定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

7
推荐指数
1
解决办法
108
查看次数

使用CLI启用Azure诊断日志记录

我正在努力实现这一目标,但是我希望使用任何形式的非人工交互来启用诊断日志记录.我想在构建步骤中加入能够启用诊断日志记录的内容,默认情况下这些内容似乎已关闭.任何Powsershell(使用Azure RM)或visual studio团队服务构建可用于实现此目的的任务?

azure azure-diagnostics azure-web-sites azure-cli azure-web-app-service

7
推荐指数
1
解决办法
544
查看次数

实体框架7(Beta 7)和实体跟踪

我试图将我的域模型(负责我的业务逻辑)与我的数据模型分开,这是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)

entity-framework-core

6
推荐指数
2
解决办法
5270
查看次数

在进行DI时指定服务选项的干净方式

所以我有一个服务,比方说,它是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

6
推荐指数
1
解决办法
100
查看次数