IdentityServer4问题

时间:2016-09-28 11:07:26

标签: identityserver4

我正在使用IdentityServer4创建Web API安全性。我通过在控制台管理器中键入以下语法来安装identityserver4包:Install-Package IdentityServer4 -Pre。它安装成功。现在我无法在我的项目中引用它。 这是我安装后的project.json代码:

{
    "webroot": "wwwroot",
    "version": "1.0.0-*",

    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
        "IdentityServer4": "1.0.0-rc1-update2"
    },

    "commands": {
        "web": "Microsoft.AspNet.Hosting --config hosting.ini"
    },

    "frameworks": {
        "dnx451": { },
        "dnxcore50": { }
    },

    "publishExclude": [
        "node_modules",
        "bower_components",
        "**.xproj",
        "**.user",
        "**.vspscc"
    ],
    "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
    ]
}

所以现在我用以下代码创建了一个客户端类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace LearningIdentityServer4.OAuth
{
    public class Clients
    {
        public static IEnumerable<Client> Get()
        {
            return new[]
            {
                new Client
                {
                    ClientId = "myApi",
                    ClientSecrets = new List<Secret>
                    {
                        new Secret("secret".Sha256())
                    },
                    ClientName = "My lovely Api",
                    Flow = Flows.ResourceOwner,
                    AllowedScope =
                    {
                        Constants.StandardScope.OpenId,
                        "read"
                    },
                    Enabled = true
                }
            };
        }
    }
}

所以我收到很多错误。当我将鼠标悬停在让我们说第一个客户端时,我得到的唯一选项是Add Package IdentityServer3 2.1.1

那么我如何引用IdentityServer4而不是IdentityServer3 2.1.1

我期待着您的回复。

谢谢,Somad

1 个答案:

答案 0 :(得分:4)

这些框架完全过时了。

要使用identityserver4,您需要(至少)依赖netcoreapp 1.0框架并添加一些依赖项。将project.json中的框架替换为以下内容:

"frameworks": {
"netcoreapp1.0": {
  "imports": [
    "dotnet5.6",
    "portable-net45+win8"
  ]
}
},

另见samples。我假设您的工具已过时,或者您再次打开旧项目。 ASP.NET Core已经改变了很多东西。