Asp.net &引用;System.Net.HttpListener“;IAppBuilder属性中不可用

Asp.net &引用;System.Net.HttpListener“;IAppBuilder属性中不可用,asp.net,asp.net-web-api,active-directory,owin,windows-authentication,Asp.net,Asp.net Web Api,Active Directory,Owin,Windows Authentication,我正在开发一个混合身份验证(基于Owin令牌和Windows身份验证)的web应用程序。我已经实现了基于Owin令牌的身份验证,并希望为标记为active directory用户的用户实现windows身份验证 在Owin中间件中,我想获取请求用户的windows用户名。我正在OwinContext.Request.User.Identity中获取对象。但是,OwinContext.Request.User.Identity.Name始终为空字符串 我发现我应该在startup.cs中添加以下行

我正在开发一个混合身份验证(基于Owin令牌和Windows身份验证)的web应用程序。我已经实现了基于Owin令牌的身份验证,并希望为标记为active directory用户的用户实现windows身份验证

在Owin中间件中,我想获取请求用户的windows用户名。我正在OwinContext.Request.User.Identity中获取对象。但是,OwinContext.Request.User.Identity.Name始终为空字符串

我发现我应该在startup.cs中添加以下行:

var listener = (HttpListener)app.Properties["System.Net.HttpListener"];
listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;
但是,我得到的密钥未发现异常。属性数组中不存在“System.Net.HttpListener”。我已经安装了Microsoft.Owin.SelfHost、Microsoft.Owin.Host.HttpListener。然而,我仍然得到了错误

非常感谢您的帮助

谢谢,
GB

对于我来说,问题是项目是作为共享库启动的,而不是web应用程序

解决方案是在
行之后向.cspro文件中添加一行

<ProjectTypeGuids>{349C5851-65DF-11DA-9384-00065B846F21};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

UPD:

我知道这很旧,但你有没有找到解决办法?我遇到了同样的问题,似乎找不到任何关于如何使其可用的好参考。我是否在我的项目中遗漏了一个参考资料?需要在服务器上的GAC中添加一些内容吗?
public async Task Invoke(IDictionary<string, object> env)
{
    OwinContext context = new OwinContext(env);
    WindowsPrincipal user = context.Request.User as WindowsPrincipal;

    //...
}
// In a web api controller function
WindowsPrincipal user = RequestContext.Principal as WindowsPrincipal;