Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 调试.NET核心Weblistener应用程序中的集成Windows身份验证_Asp.net Core_Owin_Kerberos_Windows Authentication_Weblistener - Fatal编程技术网

Asp.net core 调试.NET核心Weblistener应用程序中的集成Windows身份验证

Asp.net core 调试.NET核心Weblistener应用程序中的集成Windows身份验证,asp.net-core,owin,kerberos,windows-authentication,weblistener,Asp.net Core,Owin,Kerberos,Windows Authentication,Weblistener,我有一个.NET核心应用程序,使用OWIN和windows身份验证以及AuthenticationSchemes.Negotiate,托管在Weblistener而不是IIS上 在某些设置中,这只起作用,而在其他设置中,会显示登录提示,并且无法对用户进行身份验证。然而,我从来都不知道它为什么有效或无效 如何在生产环境中调试此类问题,以及如何在应用程序中进行更改以使其在生产环境中可调试?我可以查看哪些日志,在哪里可以启用其他日志记录等。?除了更改代码、添加自定义代码以使其可配置或将其托管在IIS上

我有一个.NET核心应用程序,使用OWIN和windows身份验证以及AuthenticationSchemes.Negotiate,托管在Weblistener而不是IIS上

在某些设置中,这只起作用,而在其他设置中,会显示登录提示,并且无法对用户进行身份验证。然而,我从来都不知道它为什么有效或无效

如何在生产环境中调试此类问题,以及如何在应用程序中进行更改以使其在生产环境中可调试?我可以查看哪些日志,在哪里可以启用其他日志记录等。?除了更改代码、添加自定义代码以使其可配置或将其托管在IIS上之外,是否有任何内置方法可以更改与生产中的身份验证相关的应用程序设置

注意:我对如何解决这个问题不感兴趣,因为它可能有许多不同的原因,并在许多不同的服务器上到处弹出

更多详情:

Visual Studio 2015 1.0.0-preview2-003131严重吗?! 该应用程序只有一个端点,不使用cookie
了解一些事情会很有帮助

什么版本的VisualStudio? 什么版本的.NET Core 无法对用户进行身份验证

你在用饼干吗

我可以看什么日志

您可以在appsettings.json中启用日志记录

除此之外,您还可以在事件查看器中查看asp.net条目


除此之外,不同的浏览器将以不同的方式处理这些请求,如果它在一个浏览器中工作,而不是在另一个浏览器中工作,我将从那里开始

通过消除未知因素(如.NET核心应用程序),问题更容易调试。WebListener、HttpSysServer或Kestrel中集成的Windows身份验证IWA与IIS中的IWA差别不大。因此,第一步是通过设置一个空的IIS网站、应用程序或虚拟目录,启用IWA,禁用匿名身份验证,并绑定到与实际应用程序相同的主机名,从而复制问题

如果问题可以复制,那么IIS提供了更好的方法来调试问题,例如失败的请求跟踪(这完全没有帮助),或者使用NTLM而不是协商作为首选提供程序,或者禁用内核模式,等等

如果在生产中很可能使用Kerberos,则可以通过在计算机\HKEY\U LOCAL\U machine\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters中创建一个注册表值,在客户端计算机上启用Kerberos日志记录,该注册表值的名称为LogLevel,类型为DWORD,值为0x1,具体如下所示。然后,可以使用事件查看器在系统日志中查看Kerberos事件


如果无法在IIS中复制该问题,则.NET核心应用程序会出现问题,但这不太可能,因为在应用程序代码中设置IWA非常简单,几乎不可能出错。如果它可以在一个系统上工作,而不能在另一个系统上工作,那么它可能与Kerberos、AD、主机名等有关。

谢谢。如果.NET Core日志记录基础设施不是那么臃肿和复杂,这将是我尝试的第一件事,但我仍然不确定是否能在这些日志中找到与身份验证相关的内容。我将从1.0.0-preview2-003131更新到至少2.0。现在我已经深入阅读了日志文章,看起来这允许我添加自己的日志消息。但这并没有什么帮助。用户身份验证发生在代码中,该代码不是应用程序的一部分,而是框架/OS/web服务器的一部分。有没有办法让这些组件生成日志?事件查看器中没有asp.net条目。