2

asp.net应用程序(c#)在调试模式下正常工作;发布,获得401.1错误(未经授权)。 当我放入网址时,会出现一个对话框,询问用户名为&的密码。把它放在3倍,错误。发布的asp.net WebApp将无法连接。 401.1未授权

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

  • IIS 7.5,使用ApplicationPoolIdentity。

  • SQLServer数据库

从401.1页特定错误消息:

  • 模块WindowsAuthenticationModule

  • 通知AuthenticateRequest

  • 处理程序ExtensionlessUrlHa ndler集成-4.0

  • 错误代码0x8009030e

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

  • 物理路径C:\的Inetpub \ SmallTools

  • 登录方法尚未确定

  • 登录用户尚未确定

该应用程序有一个用户表来确定该用户的“角色”。我在master页面中根据经过验证的用户查询表并返回角色。这反过来决定哪些按钮在导航栏上可见。

看着在安全日志中,并发现了以下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 

任何想法可能会导致无法登录?任何线索我可以修复,使其工作?我整天都在研究,并没有发现可能存在的问题。 感谢您收到任何信息。 谢谢 Cindy

+0

web.config文件中定义了哪种类型的身份验证(如果有)? – 2012-07-20 18:16:32

+0

2012-07-20 18:40:24

+0

这是一个外部网站吗? – 2012-07-20 19:01:34

回答

0

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

Q&A about similar issue

Microsoft guide on how to implement

通常使用Windows身份验证与内部系统,因为用户直接登录到系统中,所有的证书是在那里。但是,对于外部应用程序,情况并非总是如此,因为您的家庭Windows帐户和工作窗口帐户不一样,此外,您甚至可能无法使用外部位置的窗口。

+0

谢谢,安德鲁。这是一个内部网站。我会看看你的链接,并从那里去。谢谢! – 2012-07-24 16:40:39

+0

我已将Application Pool Identity从ApplicationPoolIdentity更改为NetworkService,并且更改了我的错误。我现在正在得到一个SQLException - 用户'DE \ S0062 $'登录失败。异常详细信息:System.Data.SqlClient.SqlException:用户'DE \ s0062 $'的登录失败。没有相关的源代码行。这是一个两跳问题吗?如果是这样,我需要改变什么? – 2012-07-24 18:14:33

+0

在连接字符串中,您是否指定了用户名和密码? – 2012-07-24 18:33:04

0

我遇到了另一个疑难杂症是本地环回地址的安全检查,当你安装一个DEV实例并修改hosts文件,使用完全合格的域名( 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值设置为

    HKLM \系统\ CurrentControlSet \控制\ LSA \ DisableLoopbackCheck

请参阅本HTTP 401.1 - Unauthorized: Logon Failed - Microsoft Support article为过详细查看和注册表设置。