相关疑难解决方法(0)

使用集成的Windows身份验证接收登录提示

我有一个在Windows 2003服务器上的IIS 7下运行的.NET 3.5应用程序,并且在我继续提示登录时无法使集成的Windows身份验证正常工作.我已将IIS身份验证设置为在IIS中启用,并禁用所有其他安全类型,并且我的应用程序web.config文件身份验证/授权设置为:

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
    <authenticationmode="Windows"/>
    <authorization>
    <deny users = "?" />
    </authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)

通过这种设置,我期待Windows用户的场景验证背后允许访问和拒绝匿名用户.但是,当我尝试访问该站点时,我得到的是Windows登录弹出窗口.

我已经解决了这个问题几天了,无法解决问题.基于具有类似问题的帖子,我确认我的URL不包含任何句点,仔细检查我的IE设置是否设置为启用集成Windows身份验证,还将我的URL添加到我的Intranet站点,但仍然获得弹出窗口.

为了进一步排除故障,我在IIS中启用了匿名身份验证并修改了我的web.config文件,然后添加了Response.Write(System.Security.Principal.WindowsIdentifity.getcurrent().user.name.toString() )尝试查看身份验证中使用的用户.我得到的结果是IIS APPPOOL\myapp,它显然是我的应用程序的IIS应用程序池.

我真的很感激任何人都可以提供的任何帮助,所以我仍然只使用Windows身份验证,但没有获得弹出窗口,并且Windows身份验证是针对实际的Windows用户执行的.

谢谢.


进一步排除故障后的其他说

只是注意到当登录失败并再次显示Windows登录提示时,它显示尝试登录为"SERVERNAME"\"USERNAME"的用户名,这使我相信它正在尝试验证用户对服务器的对比域.为了确认这一点,我直接在应用服务器上创建了一个本地用户帐户,其用户名和密码与网络域用户相同,并尝试再次登录.结果是我再次收到登录提示,但是当我输入用户名和密码时,我能够成功登录.网络用户和应用服务器位于同一个域中,因此实际上不确定为什么IIS身份验证指向本地应用服务器帐户而不是域帐户.我知道这是一个IIS问题,所以发布在forums.iis.net上,但感谢任何人可能有任何建议,因为已经解决了这几天.

asp.net iis-7 windows-authentication

104
推荐指数
9
解决办法
26万
查看次数

具有Windows身份验证的IIS 7.5 Web应用程序是否要求最终用户具有文件权限?

精简版:

对于使用Windows身份验证的IIS 7.5 Web应用程序,最终用户是否需要具有读取文件访问权限?

长版:

我有一个使用Windows身份验证的Intranet ASP.NET Web应用程序.它安装在许多不同的公司,通常认证工作正常:用户导航到网站,例如http://appserver/MyApp,应用程序识别他们登录的人,并相应地显示页面.我刚刚在新客户端安装它并遇到问题:

连接时,例如http://appserver/MyApp我提示我输入Windows凭据,但输入后我会反复提示.在几次重新输入凭证后,我显示了一个401错误页面,上面写着"401 - 未经授权:由于凭证无效而拒绝访问".因此,它不仅没有通过我的身份,但即使输入用户名和密码,它仍然拒绝访问.

为应用程序的最终用户提供读取和执行权限可以解决此问题,但我认为这根本不是必需的.

在Windows应用程序事件日志中,有一条消息"请求的文件授权失败"以及线程帐户名称:NT AUTHORITY\NETWORK SERVICE和用户:[正确的工作站用户的域帐户].这表明文件访问是使用用户的身份执行的,而不是网络服务的AppPool身份.果然,如果我将最终用户的读取和执行权限(我没有尝试只读)授予应用程序的目录,那么一切正常:当用户浏览到站点时,他们会自动进行身份验证,而不是提示,以及网站正确认识他们的身份!因此,我的解决方案是在应用程序目录中为Everybody提供Read&Execute权限......但这不是一个理想的解决方案.

这看起来很奇怪.在IIS 7.5之前,我从来没有必要这样做,据我所知,在IIS 6或IIS 7中绝对不需要.这是一个新的IIS7.5吗?文档说默认情况下模拟已关闭.我在web.config中添加了一个元素,以确保删除了除Network Service之外的文件权限,但问题仍然存在.

有什么想法吗?IIS 7.5上的Windows Authenticated站点是否正常,以便最终用户需要Web服务器文件的文件权限?

一些相关细节:

  • 网络服务对应用程序文件夹具有完全控制文件权限.
  • 当从服务器本身连接时,我被提示输入凭据但在输入后我已经过身份验证并且应用程序正常运行,包括显示我的Windows登录以及连接和从数据库检索数据.后来我确定它提示凭据,因为http://localhost它位于受信任的站点,因此不被识别为Intranet区域,因此没有通过身份.我还确定它作为此用户标识工作,因为它是具有文件权限的管理员用户.
  • Web服务器正在运行Windows Server 2008 R2/IIS 7.5.在我安装它之前它没有IIS.我安装了默认功能以及Windows身份验证,ASP.NET以及其他一些项目.我安装的单独的WCF应用程序使用IIS,匿名身份验证和.net 2.0在该Web服务器上运行正常.
  • 应用安装过程是文件的手动副本,IIS应用程序池和Web应用程序的创建,更新连接字符串等.
  • 我检查了IE安全设置.它将服务器识别为Intranet区域,并选择了"仅在Intranet区域中自动登录"选项.此外,在高级设置上,选中了"启用集成Windows身份验证"选项.
  • 安装IIS后,我运行aspnet_regiis -i.net 2.0和 aspnet_regiis -iru.net 4.0.
  • 我的应用程序禁用了匿名身份验证,并启用了Windows身份验证.
  • 该应用程序在ASP.NET v4上运行,但我安装的另一个应用程序遇到运行ASP.NET v2的相同问题.
  • 该应用程序以Identity = Network Service和32位模式运行.
  • 数据库连接字符串包括Trusted Connection=True和数据库权限被授予Web服务器帐户,[domain]\[server]$ 例如DGM\MyServer$.
  • 在IIS>身份验证> Windows身份验证>提供程序中,列表首先是协商,然后是NTLM.我尝试重新排序,所以NTLM是第一个.
  • 在Windows安全事件日志中,有一系列Microsoft Windows安全审核事件:登录和注销.他们表示登录成功并显示工作站用户的用户ID.这是从我从另一个工作站连接并在多次尝试后收到401 Unauthorized时.

我看到有人在这里报告了这个问题 …

asp.net iis windows-authentication iis-7.5

26
推荐指数
3
解决办法
3万
查看次数

无法使用Windows身份验证IIS登录网站

我长期以来一直在寻找解决这个头痛问题的方法。

我有一个网站想要部署到我的 Web 服务器,因此我使用 IIS 7 并按照以下步骤对登录进行身份验证:

1-打开IIS

2-添加网站(带有随机端口号)

3-将其应用程序池设置为特定的身份

4- 禁用匿名身份验证,然后启用 Windows 身份验证。

5-删除“允许所有用户”规则

6-为管理员用户添加允许规则并给予他完全控制访问权限

当我尝试访问它时,它要求输入用户名和密码,该用户名和密码必须与步骤 6 中添加的用户相同。

问题是每当我单击“确定”时,日志记录窗口都会不断弹出,因此无法访问网站

我还尝试为匿名用户添加拒绝规则

web.config 文件中必须添加什么内容吗?我需要安装某些东西或禁用某些东西吗?

任何建议都非常感激

编辑 这是我的 web.config 文件授权部分

<system.web>
  <authentication mode="Windows" />
  <compilation targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
  <pages validateRequest="false"></pages>
    <identity impersonate="false" />
  <authorization>
    <allow users="SomeUser" />
    <deny users="*"/>
  </authorization>


</system.web>
Run Code Online (Sandbox Code Playgroud)

c# asp.net authentication iis windows-authentication

5
推荐指数
1
解决办法
2万
查看次数