【发布时间】:2016-04-20 20:07:36
【问题描述】:
我有一个像这样的 Nancy 模块。
public class HomeModule : NancyModule
{
public HomeModule()
{
this.RequiresAuthentication();
var context = this.Context; // this is null
Get["/"] = x =>
{
return "Hello";
};
}
}
OWIN 中间件将 OwinRequest 对象的 User 属性设置为具有经过身份验证的身份的 ClaimsPrincipal。如果我打破模块内部并看到 Thread.CurrentPrincipal,它被正确设置为我之前在中间件中设置的ClaimsPrincipal。然而,RequriesAuthentication 发回 401。顺便说一句,模块内部的上下文为空。我做错了什么?
我使用的一些感兴趣的 NuGet 包是
<package id="Microsoft.Owin" version="1.1.0-beta2" targetFramework="net45" />
<package id="Microsoft.Owin.Host.HttpListener" version="1.1.0-beta2" targetFramework="net45" />
<package id="Microsoft.Owin.Hosting" version="1.1.0-beta2" targetFramework="net45" />
<package id="Nancy" version="0.17.1" targetFramework="net45" />
<package id="Nancy.Owin" version="0.17.1" targetFramework="net45" />
<package id="Owin" version="1.0" targetFramework="net45" />
【问题讨论】: