使用SignalR和OWIN自托管的Windows身份验证

Mat*_*rds 13 windows-authentication signalr owin

我有一个自托管SignalR应用程序使用OWIN.我想为传入的请求添加Windows身份验证.这可能吗?

我相信我可以通过类似的东西添加例如Forms Authentication .

但是我找不到任何方法来使用Windows身份验证来做类似的事情.

我的后备计划将是在IIS中托管,但我希望能够将我的应用程序保留为Windows服务,如果可以的话.

dav*_*owl 25

理想情况下,有一个NTLM owin middlware,但由于没有,你可以通过获取HttpListener的句柄并以这种方式启用auth来解决它(它本身由HttpListener支持):

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var listener = (HttpListener)app.Properties[typeof(HttpListener).FullName];
        listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm;

        app.MapHubs();
    }
}
Run Code Online (Sandbox Code Playgroud)