Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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 MVC间歇性401授权错误_Asp.net_Iis_Kerberos - Fatal编程技术网

ASP.NET MVC间歇性401授权错误

ASP.NET MVC间歇性401授权错误,asp.net,iis,kerberos,Asp.net,Iis,Kerberos,我有一个ASP.NET MVC intranet站点,它专门使用Windows身份验证(Kerberos)和直通身份验证。设置为使用使用网络服务标识的应用程序池(v4/集成)。该网站在另一台计算机(SAMBA NAS box)上托管的网络共享上提供了一个漂亮的UI。有时(通常是当有人有一段时间没有访问该站点时),客户端在MVC代码试图获取远程UNC共享上的目录信息(System.IO.directory.GetLastWriteTime)时收到401授权错误。IIS计算机上的事件日志在此同一时间

我有一个ASP.NET MVC intranet站点,它专门使用Windows身份验证(Kerberos)和直通身份验证。设置为使用使用网络服务标识的应用程序池(v4/集成)。该网站在另一台计算机(SAMBA NAS box)上托管的网络共享上提供了一个漂亮的UI。有时(通常是当有人有一段时间没有访问该站点时),客户端在MVC代码试图获取远程UNC共享上的目录信息(System.IO.directory.GetLastWriteTime)时收到401授权错误。IIS计算机上的事件日志在此同一时间点捕获安全审核失败:

+ System - Provider [ Name] Microsoft-Windows-Security-Auditing [ Guid] {54849625-5478-4994-a5ba-3e3b0328c30d} EventID 4625 Version 0 Level 0 Task 12544 Opcode 0 Keywords 0x8010000000000000 - TimeCreated [ SystemTime] 2012-03-17T00:43:50.522Z EventRecordID 398873 Correlation - Execution [ ProcessID] 696 [ ThreadID] 792 Channel Security Computer lvtloweb1.acme.com Security - EventData SubjectUserSid S-1-0-0 SubjectUserName - SubjectDomainName - SubjectLogonId 0x0 TargetUserSid S-1-0-0 TargetUserName TargetDomainName Status 0xc000006d FailureReason %%2304 SubStatus 0xc0000133 LogonType 3 LogonProcessName Kerberos AuthenticationPackageName Kerberos WorkstationName - TransmittedServices - LmPackageName - KeyLength 0 ProcessId 0x0 ProcessName - IpAddress - IpPort - +系统 -提供者 [名称]Microsoft Windows安全审核 [Guid]{54849625-5478-4994-a5ba-3e3b0328c30d} 事件编号4625 版本0 0级 任务12544 操作码0 关键词0x80100000000 -时间创造 [系统时间]2012-03-17T00:43:50.522Z EventRecordID 398873 相关性 -执行 [ProcessID]696 [ThreadID]792 通道安全 计算机lvtloweb1.acme.com 安全 -事件数据 主体SID S-1-0-0 主体名称- 主题域名- SubjectLogonId 0x0 TargetUserSid S-1-0-0 TargetUserName TargetDomainName 状态0xc000006d 故障原因%%2304 子状态0xc0000133 登录类型3 LogonProcessName Kerberos AuthenticationPackageName Kerberos 工作站名称- 传送服务- LMG- 键长度0 进程ID 0x0 进程名称- IP地址- iPort- 奇怪的是,如果你坐下来一遍又一遍地刷新页面,它通常会在大约一分钟内通过401错误。有人知道如何解决这样的问题吗?哦,是的,IIS机器托管在虚拟机中。来宾操作系统是Windows Server 2008 Enterprise 6.0.6002 Service Pack 2。

Keith

由于这似乎是在用户空闲后发生的,我倾向于某种事件(即会话超时),可能会使服务器的凭据无效。我假设只有一台服务器,因为您没有提到任何web场

我的一部分人认为你可能已经敲定了会话超时的角度。除非您感到安全,否则相信用户将“自动验证”并在操作中超时不会导致失败。也就是说,我不确定我是否会完全相信这种情况。为了至少消除这种可能性,我将添加一个例程,在该操作开始之前记录有关当前会话/凭据的信息。即使用户“始终登录”,假设他们在自己的计算机上,我也看到了VPN、代理服务器、服务器双跃点、IE“可信区域”和“intranet”设置的奇怪问题。即使是一台计算机突然改变了到服务器的路由,也可能导致问题。我不确定虚拟机上的网络仿真是否会起作用,但谁知道呢

这是一篇“入门”文章,介绍IE及其复杂的身份验证方法,以及它作为访问Intranet MVC应用程序的客户端应用程序所扮演的角色。(深入研究IE如何在Windows广告环境中自动神奇地进行身份验证是值得的。)

这是一个相关的问题,有人因为双跳导致401s。我还提供了一个链接,指向另一个关于调查这类问题的“入门页”


对不起,如果你已经知道以上任何事情,或者对于我的回答的一般性质。如果没有实际的网络访问权限,或者无法在代码中添加日志记录,这将非常困难。我希望我为您指明了正确的方向。

IIS是在进行实际的身份验证还是在使用您的MVC应用程序?在使用MADAM进行身份验证时,我在IIS中签入了“集成Windows身份验证”后遇到了类似的问题。是的,在IIS站点上启用了集成Windows身份验证。什么是夫人?有点像是一种身份验证机制在处理库:在我的例子中,我没有完全遵循配置说明:/不幸的是,这可能不相关。您所指的直通身份验证是什么?是Kerberos委派还是microsoft S4U扩展?您是否在IIS的缓存中维护用户的TGT?不客气,如果您根据这些测试获得更多信息,我很想听到更多有关疑难解答的信息。