![](/img/trans.png)
[英]How to enable windows authentication in conjunction with Owin token authentication in web api?
[英]How to enable OWIN logging on Windows 7
我正在嘗試登錄到我的OWIN自托管解決方案。
我的MiddleWare
課程如下:
public class HostingMiddleware : OwinMiddleware
{
private readonly ILogger _logger;
public HostingMiddleware(OwinMiddleware next, IAppBuilder builder)
: base(next)
{
_logger = builder.CreateLogger<HostingMiddleware>();
}
public override Task Invoke(IOwinContext context)
{
_logger.WriteVerbose(string.Format("{0} {1}: {2}"));
context.Response.Headers.Add("Content-Type", new[]
{
"text/plain"
});
return Invoke(context);
}
}
然后我在我的Startup
類中使用它。
public class Startup
{
public void Configuration(IAppBuilder builder)
{
// Initialize the configuration for Web API self-host.
HttpConfiguration config = new HttpConfiguration();
// Map the default Web API HTTP Route
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Use Web API
builder.UseWebApi(config);
builder.Use<HostingMiddleware>(builder);
}
}
當我刪除builder.Use<HostingMiddleware>(builder);
我可以發出HTTP請求並獲得響應,但是當我實現我的Middleware
類時,我得到:
No WebSocket support detected, Windows 8 or later is required.
從那里開始,日志記錄不能正常工作。 當然有一種方法可以讓Windows 7環境中的日志記錄工作,否則功能會變得毫無用處? 關於我需要做什么的任何想法?
提前致謝。
您需要使用Next.Invoke(context)
而不是您正在做的事情。
你在日志記錄中也有一個“bug” - 我不知道你想記錄什么 - 我添加了自己的。
祝你好運 - 我喜歡它。
public class HostingMiddleware : OwinMiddleware
{
private readonly ILogger _logger;
public HostingMiddleware(OwinMiddleware next, IAppBuilder builder)
: base(next)
{
_logger = builder.CreateLogger();
}
public async override Task Invoke(IOwinContext context)
{
_logger.WriteVerbose(string.Format("{0} --- {1}", context.Request.Uri.AbsolutePath, context.Request.QueryString);
await Next.Invoke(context);
}
}
你必須閱讀: 理解OWIN,Katana和中間件管道
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.