我使用了IdentityServer v3,现在我希望一个网站既是身份主机又是web api主机.
权限选项不用于验证令牌.我已经验证了令牌端点,并且令牌验证端点正在按预期工作(我可以使用邮递员获取并验证令牌).我使用[Authorize]属性来装饰我的控制器方法.在IdentityServer上启用了完整日志记录,在使用标题名称"Authorization"创建api请求时,没有记录任何内容,其值为"Bearer mytokenhere".
这是使用Visual Studio 2015 CTP6的ASP.NET 5上的vNext网站.
app.UseMvc();
var certFile = AppDomain.CurrentDomain.BaseDirectory + "\\myawesomesite.pfx";
app.Map("/core", core =>
{
var factory = InMemoryFactory.Create(
users: Users.Get(),
clients: Clients.Get(),
scopes: Scopes.Get());
var idsrvOptions = new IdentityServerOptions
{
SiteName = "Lektieplan",
Factory = factory,
RequireSsl = false,
SigningCertificate = new X509Certificate2(certFile, "lektieplan"),
CorsPolicy = CorsPolicy.AllowAll,
LoggingOptions = new LoggingOptions { EnableWebApiDiagnostics = true,EnableHttpLogging = true, IncludeSensitiveDataInLogs = true, WebApiDiagnosticsIsVerbose = true }
};
core.UseIdentityServer(idsrvOptions);
});
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "http://localhost:57540/core", …Run Code Online (Sandbox Code Playgroud) 在joliver/EventStore中使用MongoDB persistance引擎导致错误Unknown discriminator value 'MyEvent'.问题只是在我尝试加载所有事件以重放事件时引起的this.storeEvent.Advanced.GetFrom(new DateTime(2010, 1,1))
这些问题是在ExtensionsMethods.cs中引起的
public class MyClassEvent : IDomainEvent { ... }
public static Commit ToCommit(this BsonDocument doc, IDocumentSerializer serializer)
{
if (doc == null)
return null;
var id = doc["_id"].AsBsonDocument;
var streamId = id["StreamId"].AsGuid;
var commitSequence = id["CommitSequence"].AsInt32;
var events = doc["Events"].AsBsonArray.Select(e => e.AsBsonDocument["Payload"].IsBsonDocument ? BsonSerializer.Deserialize<EventMessage>(e.AsBsonDocument["Payload"].AsBsonDocument) : serializer.Deserialize<EventMessage>(e.AsBsonDocument["Payload"].AsByteArray)).ToList();
var streamRevision = doc["Events"].AsBsonArray.Last().AsBsonDocument["StreamRevision"].AsInt32;
return new Commit(
streamId,
streamRevision,
doc["CommitId"].AsGuid,
commitSequence,
doc["CommitStamp"].AsDateTime,
BsonSerializer.Deserialize<Dictionary<string, object>>(doc["Headers"].AsBsonDocument),
events);
}
Run Code Online (Sandbox Code Playgroud)
我的配置是这样的:
Wireup.Init()
.UsingMongoPersistence(connectionName, new DocumentObjectSerializer())
.UsingBsonSerialization() …Run Code Online (Sandbox Code Playgroud)