2015-11-04 26 views
4

在ASP.NETv4我用:ASP.NET V5多SigningCredentials

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这样的东西。

我似乎被卡住了。

回答

4

您看到的问题直接归因于您引用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引用,它应该工作。

如果需要OAuthAuthorizationServerMiddleware与ASP.NET的5部作品的选择,你可以看看这个其他SO问题:Configure the authorization server endpoint