【问题标题】:Published asp.net WebApp won't connect. 401.1 unauthorized已发布的 asp.net WebApp 无法连接。 401.1 未经授权
【发布时间】:2012-07-20 18:05:35
【问题描述】:

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

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

  • IIS 7.5,使用 ApplicationPoolIdentity。

  • SQLServer 数据库

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

  • 模块 WindowsAuthenticationModule

  • 通知验证请求

  • 处理程序 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

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

【问题讨论】:

  • web.config 文件中定义了哪种类型的身份验证(如果有)?

标签: asp.net sql-server-2008 iis-7.5 windows-authentication publishing-site


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    Q&A about similar issue

    Microsoft guide on how to implement

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

    【讨论】:

    • 谢谢,安德鲁。这是一个内部站点。我会看看你的链接,然后从那里开始。谢谢!
    • 我已将我的应用程序池标识从 ApplicationPoolIdentity 更改为 NetworkService,并且我的错误发生了变化。我现在收到 SQLException - 用户“DE\S0062$”登录失败。异常详细信息:System.Data.SqlClient.SqlException:用户“DE\s0062$”登录失败。没有相关的源代码行。这是一个两跳问题吗?如果是这样,我需要改变什么?
    • 在连接字符串中您是否指定了用户名和密码?
    • 感谢安德鲁的帮助。
    【解决方案3】:

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

    This issue occurs when the Web site uses Integrated Authentication and has a name that is mapped to the local loopback address

    解决问题的主要方法有两种:

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

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

    2. 通过将以下注册表 DWORD 值设置为 1

      ,禁用环回检查(不太推荐的方法 - 不要在生产服务器上使用)

      HKLM\SYSTEM\CurrentControlSet\Control\Lsa\DisableLoopbackCheck

    请参阅此HTTP 401.1 - Unauthorized: Logon Failed - Microsoft Support article 了解详细概述和注册表设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 2013-08-03
      • 2019-10-01
      • 2018-10-09
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多