2015-11-04 25 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