【问题标题】:ASP.NET v5 Multiple SigningCredentialsASP.NET v5 多重签名证书
【发布时间】:2016-02-05 01:49:21
【问题描述】:

在 ASP.NETv4 中我使用过:

var signingKey = new HmacSigningCredentials(keyByteArray);

但在 v5 中,new JwtSecurityToken() 的最后一个参数是SigningCredentials,而不是HmacSigningCredentials

所以我尝试使用:

var signingKey = new System.IdentityModel.Tokens.SigningCredentials();

但这给了我错误The type SigningCredentials exists in both System.IdentityModel.Tokens and System.IdentityModel

我该如何解决这个问题?

这些是我的依赖项:

"dependencies": {
    "EntityFramework.Commands": "7.0.0-beta8",
    "EntityFramework.SqlServer": "7.0.0-beta8",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta8",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
    "Microsoft.AspNet.Mvc": "6.0.0-beta8",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8",
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta8",
    "Microsoft.Framework.Logging": "1.0.0-beta8",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta8",
    "Microsoft.Framework.Logging.Debug": "1.0.0-beta8",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta8",
    "Thinktecture.IdentityModel.Core": "1.4.0",
    "Microsoft.Owin.Security": "3.0.1",
    "System.IdentityModel.Tokens.Jwt": "5.0.0-beta8-209291029",
    "Microsoft.AspNet.Identity.Owin": "2.2.1"
},

据我所知,这些依赖关系之间存在冲突:

    "Microsoft.AspNet.Identity.Owin": "2.2.1"
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8"

如果我删除实体框架之一,那么我会丢失 public class User : IdentityUser 之类的东西,如果我删除 Owin 一个,那么我会丢失 OAuthAuthorizationServerProvider 之类的东西。

我好像被卡住了。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    您看到的问题直接是因为您同时引用了 ASP.NET Identity 2 和 Identity 3 包:Identity 2 引用 IdentityModel 4(带有完整的 .NET 框架),而新堆栈使用IdentityModel 5. 遗憾的是,两者都不兼容,不能在同一个项目中引用。 你可以在这里找到更多信息:Ambiguous reference issue (Microsoft.AspNet.Identity & Microsoft.AspNet.Identity.Core)

    删除您的 Microsoft.AspNet.Identity.Owin/Microsoft.Owin.Security 引用,它应该可以工作。

    如果您需要与 ASP.NET 5 一起使用的 OAuthAuthorizationServerMiddleware 的替代品,您可以查看另一个 SO 问题:Configure the authorization server endpoint

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 2015-09-13
      • 2013-04-01
      • 2018-06-18
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      相关资源
      最近更新 更多