我的标题中有一个非常简单的局部视图叫做AccountInfoPanel。 它只有一行:
Welcome: @HttpContext.Current.User.Identity.Name
在我的Web.Config中我有
<authentication mode="Windows" />
但身份名称始终为空。 如果我通过VS 2012调试,并打破索引操作,我发现它是空的。
如果我通过启用Windows身份验证和匿名身份验证的IIS运行它,我会遇到挑战。 所以我尝试插入我的帐户或test1和test2帐户。 它回来说:
HTTP错误401.1 - 未经授权 您无权使用您提供的凭据查看此目录或页面。
我还尝试将Impersonation设置为true并从挑战中获得相同的响应。 有谁知道如何设置它?
如果所有设置都必须在IIS中完成,那么如何在Visual Studio中调试代码?
另一个问题。我的老板似乎认为你甚至不需要登录框。 IE会知道你是谁。并且您可以使用其他帐户在IE中“运行”。
答案 0 :(得分:8)
检查我的核对清单上的一个可能的问题
http://netpl.blogspot.com/2012/06/iis-75-integrated-security-with-no.html
简而言之:
首先,确保为站点关闭匿名身份验证:
其次,在Interner Explorer中启用集成安全性(选项/高级并选中“启用集成Windows身份验证”选项)。
第三步,将您的网站添加到本地Intranet区域,并至少选择“选项/安全设置/本地Intranet /自定义级别”下的“仅在Intranet区域中自动登录”选项。
第四,确保用户和应用服务器位于同一个域中。
答案 1 :(得分:5)
要解决此问题,您必须启用Windows身份验证功能。请按照以下步骤操作:
单击“开始”,然后单击“控制面板”。打开“程序”组。 - 在“程序和 - 功能”下,单击“打开或关闭Windows功能”。 - 展开标记为Internet Information Services的项目。 - 展开标记为万维网服务的项目。 - 扩展项目安全 - &gt; 确保选择Windows身份验证
此外,您需要从IIS中禁用匿名身份验证,如下所示: - 在IIS中单击您的应用程序 - 双击IIS组下的身份验证 - 单击“匿名身份验证” - 单击“操作”下右侧的“禁用”。希望这有帮助
答案 2 :(得分:1)
Visual Studio安装IIS Express以提供Web应用程序,因此您必须将其配置为使用Windows身份验证。
IIS Express的配置文件通常在这里(更多信息:Where is the IIS Express configuration / metabase file found?):
%userprofile%\documents\iisexpress\config\applicationhost.config
禁用匿名身份验证(默认情况下启用):
<anonymousAuthentication enabled="false" userName="" />
启用Windows身份验证(默认情况下禁用):
<windowsAuthentication enabled="true">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
答案 3 :(得分:0)
我知道这是一个老问题,但由于未得到回答,也许有人可以使用我的小费。一段时间以来,我一直在努力解决这一问题,最后,我发现需要安装URL授权才能使其正常工作。
导航至Windows功能并安装以下功能:
Web服务器(IIS)-> Web服务器->安全-> URL授权
为了以防万一,我还重新启动了IIS,但是我不确定是否需要它。