asp.net app(c#)在调试模式下工作正常;发布,得到401.1错误(未经授权)。 当我输入网址时,会出现一个对话框,询问用户名和用户名。密码。把它放在3倍,错误。
这是一个内部应用程序,仅使用Windows身份验证。
IIS 7.5,使用ApplicationPoolIdentity。
SQLServer数据库
401.1页面的特定错误消息:
模块WindowsAuthenticationModule
通知AuthenticateRequest
Handler ExtensionlessUrlHandler-Integrated-4.0
错误代码0x8009030e
请求的网址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
知道可能导致无法登录的原因吗?有什么线索我可以解决它使它工作?我整天都在研究,但没有发现可能出现的问题。 感激地收到任何信息。 谢谢 辛迪
答案 0 :(得分:0)
如果这是一个外部站点,那么Windows身份验证实际上就不是了。但你仍然可以这样做,这里有一些我发现应该有用的链接。
Microsoft guide on how to implement
通常,Windows身份验证与内部系统一起使用,因为用户直接登录到系统,并且所有凭据都在那里。但是对于外部应用程序并非总是如此,因为您的家庭Windows帐户和工作窗口帐户不一样,此外您甚至可能不使用外部位置的窗口。
答案 1 :(得分:0)
我遇到的另一个问题是当您设置DEV实例并修改hosts文件以使用完全限定域名(FQDN)时的本地环回地址安全检查,或者仅当您使用自定义标头浏览IIS站点且名称不匹配时服务器主机名。虽然这对于生产服务器是必需的,但在设置Developer环境时这是一个问题。
有两种主要方法可以解决此问题:
通过创建/更新多字符串值,指定主机名(如果需要NTLM身份验证,则为首选方法):
<强> HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \控制\ LSA \ MSV1_0 强>
通过将以下注册表 DWORD值设置为 1
,禁用环回检查(不太推荐的方法 - 不要在生产服务器上使用)<强> HKLM \系统\ CurrentControlSet \控制\ LSA \ DisableLoopbackCheck 强>
有关详细概述和注册表设置,请参阅此 HTTP 401.1 - Unauthorized: Logon Failed - Microsoft Support article 。