2

asp.net app (c#) 在调试模式下运行良好;已发布,出现 401.1 错误(未经授权)。当我输入网址时,会出现一个对话框,询问用户名和密码。把它放在3倍,错误。

它是一个内部应用程序,仅使用 Windows 身份验证。

  • IIS 7.5,使用 ApplicationPoolIdentity。

  • SQLServer 数据库

来自 401.1 页面的特定错误消息:

  • 模块 WindowsAuthenticationModule

  • 通知 AuthenticateRequest

  • 处理程序 ExtensionlessUrlHandler-Integrated-4.0

  • 错误代码 0x8009030e

  • 请求的 URL http://smalltools.dbsvc.com:80/ Ap

  • 物理路径 C:\inetpub\SmallTools

  • 登录方式尚未确定

  • 登录用户尚未确定

该应用程序有一个用户表来确定该用户的“角色”。我在母版页中放置了一个方法,该方法根据经过身份验证的用户查询表,并返回角色。这反过来又决定了哪些按钮在导航栏上可见。

查看安全日志,发现以下 3 个条目:

2012-07-20 14:55:11 10.0.1.38 GET / - 80 - 10.0.13.106 Mozilla/5.0+(Windows+NT+6.1;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 401 2 5 15

2012-07-20 14:55:20 10.0.1.38 GET / - 80 DE\cin.bro 10.0.13.106 Mozilla/5.0+(Windows+NT+6.1;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 500 0 0 125

2012-07-20 14:55:20 10.0.1.38 GET /favicon.ico - 80 DE\cin.bro 10.0.13.106 Mozilla/5.0+(Windows+NT+6.1;+rv:14.0)+Gecko/20100101+Firefox/14.0.1 404 0 2 0

知道什么可能导致无法登录吗?任何线索我可以修复以使其工作?我研究了一整天,没有发现可能是什么问题。任何信息都将不胜感激。谢谢辛迪

4

3 回答 3

1

我已经成功解决了这个问题;我不得不允许冒充,并对 AD 组进行调整。

以下链接中的文章帮助很大:http: //msdn.microsoft.com/en-us/library/bsz5788z.aspx

于 2012-07-27T14:11:49.957 回答
0

如果这是一个外部站点,那么 Windows 身份验证并不是真正可行的方法。但是你仍然可以这样做,这里有一些我发现应该有帮助的链接。

关于类似问题的问答

微软关于如何实施的指南

通常,Windows 身份验证用于内部系统,因为用户直接登录到系统并且他们的所有凭据都在那里。但是,对于外部应用程序,情况并非总是如此,因为您的家庭 Windows 帐户和工作 Windows 帐户并不相同,此外,您甚至可能没有从外部位置使用 Windows。

于 2012-07-20T19:07:41.197 回答
0

我遇到的另一个问题是本地环回地址安全检查,当您设置 DEV 实例并修改主机文件以使用完全限定域名 (FQDN) 时,或者只是当您使用自定义标头浏览 IIS 站点并且名称与服务器主机名不匹配时. 虽然这对于生产服务器是必要的,但在设置开发人员环境时却是个问题。

"当网站使用集成身份验证并且具有映射到本地环回地址的名称时,会出现此问题"

有两种主要方法可以解决该问题:

  1. 通过创建/更新多字符串值指定主机名(如果需要 NTLM 身份验证,则首选方法):

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

  2. 通过将以下注册表DWORD 值设置为1来禁用环回检查(较少推荐的方法 - 不要在生产服务器上使用)

    HKLM\SYSTEM\CurrentControlSet\Control\Lsa\DisableLoopbackCheck

有关详细概述和注册表设置,请参阅此HTTP 401.1 - 未经授权:登录失败 - Microsoft 支持文章

于 2017-01-30T15:19:03.677 回答