某些用户的ASP.NET IIS身份验证问题

时间:2010-10-14 20:34:51

标签: asp.net iis http-status-code-401

我有一个在IIS6.0上运行的ASP.NET存储库站点,我有一个无法重现的问题,但每次有三个用户遇到此问题(约20个其他用户运行正常)。我很确定它与IIS身份验证设置有关,但我当然没有排除编码错误。

用户告诉我,获得错误的3之间的共同点是他们已经将超过60个文档上传到网站上。所有用户都在不同的省份,所以我只有他们拍摄的截图和服务器事件日志进行调试。

当尝试转到ViewPage.aspx页面(但不是网站上的任何其他页面)时,系统会提示他们输入用户凭据。当他们尝试登录时,他们会再次收到登录提示。他们尝试登录三次后,会收到以下错误消息:

  

HTTP错误401.1 - 未经授权:由于凭据无效,访问被拒绝。

系统事件查看器具有以下警告(其中任何一个中的10个以上):

  

事件ID:1011
  资料来源:W3SVC
  说明:
  为应用程序池“SDAAppPool”提供服务的进程与World Wide Web Publishing服务发生了致命的通信错误。进程ID为'3264'。数据字段包含错误编号。

  

事件ID:1009
  资料来源:W3SVC
  说明:
  为应用程序池'SDAAppPool'提供服务的进程意外终止。进程ID为'2088'。进程退出代码为'0x800703e9'。

安全事件查看器具有以下几种故障审核:

  

EventID:560
  资料来源:保安   类别:对象访问
  说明:
  对象打开:
  对象服务器:SC Manager
  对象类型:SERVICE OBJECT
  对象名称:WinHttpAutoProxySvc
  处理ID: -
  操作编号:{0,557880730}
  进程ID:444
  图像文件名:C:\ WINDOWS \ system32 \ services.exe
  主要用户名:EBTOPVNET01 $
  主域名:EBSS
  主登录ID:(0x0,0x3E7)
  客户用户名:网络服务
  客户域名:NT AUTHORITY
  客户端登录ID:(0x0,0x3E4)
  访问:查询服务状态
  启动服务
  来自服务的查询信息
  特权: -
  受限制的Sid数:0
  访问掩码:0x94

Application Event Viewer具有以下错误:

  

EventID:5000
  来源:.NET Runtime 2.0错误
  用户:N / A
  说明:
  EventType clr20r3,P1 w3wp.exe,P2 6.0.3790.3959,P3 45d691cc,P4 system.data,P5 2.0.0.0,P6 4889ece0,P7 1849,P8 0,P9 system.stackoverflowexception,P10 NIL。

我的web.config具有以下身份验证/授权码:

<authentication mode="Windows"/>
<authorization>
    <deny users="?"/>
</authorization>

我在ViewPage.aspx页面上使用以下用户检查:

UsersService us = new UsersService();
TList<Users> currUser = us.Find("Ntid = '" + User.Identity.Name + "'");
int userID = 0;
if (currUser.Count != 0 )
{
    userID = currUser[0];
}

并使用该userID检查访问权限等。如果userID == 0,他们只获得读访问权限(如果User.Identity.Name返回空,我认为这会给用户提供读取权限,而不是401错误)。我在另一个页面上执行相同的用户检查,用户访问它时没有任何问题。

根据我搜索各种子问题的几天,我不确定所有这些事实是否相关,但我已经包含了我能想到的一切。如果有任何相关的内容我错过了,请告诉我。任何关于从哪里开始调查的想法或者能够在我的本地主机上重现这一点的方法,以便我可以调试将非常感激。感谢。

1 个答案:

答案 0 :(得分:1)

从进程退出代码看起来某种递归正在发生并且从不展开。惊人的Tess Ferrandez有一篇很棒的文章解释了如何调试这样的问题:

  

A .NET Crash: How not to write a global exception handler