我在启动IdentityServer 3时遇到了问题。这是一个非常简单的设置,我打算用于开发环境,我在诊断问题时遇到了问题。这是我的代码:
Startup.cs
a=($(sed 's/,/ /g' <<< "20,80,443,53"))
printf "%s\n" "${a[@]}"
20
80
443
53
Users.cs
using Owin;
using System;
using System.Security.Cryptography.X509Certificates;
using IdentityServer3.Core.Models;
using IdentityServer3.Core.Configuration;
namespace IdentityServer3
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Map("/identity", idsrvApp =>
{
idsrvApp.UseIdentityServer(new IdentityServerOptions
{
SiteName = "Embedded IdentityServer",
SigningCertificate = LoadCertificate(),
Factory = new IdentityServerServiceFactory()
.UseInMemoryUsers(Users.Get())
.UseInMemoryClients(Clients.Get())
.UseInMemoryScopes(StandardScopes.All)
});
});
}
X509Certificate2 LoadCertificate()
{
return new X509Certificate2(
string.Format(@"{0}bin\idsrv3test.pfx", AppDomain.CurrentDomain.BaseDirectory), "idsrv3test");
}
}
}
Clients.cs
using IdentityServer3.Core;
using IdentityServer3.Core.Services.InMemory;
using System.Collections.Generic;
using System.Security.Claims;
namespace IdentityServer3
{
public static class Users
{
public static List<InMemoryUser> Get()
{
return new List<InMemoryUser>
{
new InMemoryUser
{
Username = "bob",
Password = "secret",
Subject = "1",
Claims = new[]
{
new Claim(Constants.ClaimTypes.GivenName, "Bob"),
new Claim(Constants.ClaimTypes.FamilyName, "Smith")
}
}
};
}
}
}
证书来自IdentityServer's github examples。它已通过mmc证书管理单元导入,并在Visual Studio 2015中将“复制到输出目录”设置为“始终复制”。我还在VS项目上启用了SSL,并在Web配置/系统中设置了runAllManagedModulesForAllRequests =“true” .webServer / modules部分。
当我尝试通过'开始调试'启动它时,我得到:
{“无法加载类型 'IdentityServer3.Core.Configuration.IdentityServerOptions'来自 程序集'IdentityServer3,版本= 1.0.0.0,文化=中立, 公钥=空”。 “:” IdentityServer3.Core.Configuration.IdentityServerOptions“}
其他人有这个或有没有人对如何诊断有任何见解?
答案 0 :(得分:3)
我遇到了同样的问题,它似乎是所使用的项目/命名空间的名称。
命名我的项目 IdentityServer3 我遇到了同样的问题。我创建了一个名称不同的项目,这解决了这个问题。