我的标题中有一个非常简单的局部视图叫做AccountInfoPanel.它只有一行:
Welcome: @HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)
在我的Web.Config我有
<authentication mode="Windows" />
Run Code Online (Sandbox Code Playgroud)
但身份名称始终为空.如果我通过VS 2012调试,并打破索引操作,我看到它是空的.
如果我通过启用Windows身份验证和匿名身份验证的IIS运行它,我会遇到挑战.所以我尝试插入我的帐户或test1和test2帐户.它回来说:
HTTP错误401.1 - 未经授权您无权使用您提供的凭据查看此目录或页面.
我也尝试将Impersonation设置为true并从挑战中获得相同的响应.有谁知道如何设置它?
如果所有设置都必须在IIS中完成,那么如何在Visual Studio中调试代码?
另一个问题.我的老板似乎认为你甚至不需要登录框.IE会知道你是谁.并且您可以使用其他帐户在IE中"运行".
检查我的清单上的一个可能的问题
http://netpl.blogspot.com/2012/06/iis-75-integrated-security-with-no.html
简而言之:
首先,确保为站点关闭匿名身份验证:
其次,在Interner Explorer中启用集成安全性(选项/高级并选中"启用集成Windows身份验证"选项).
第三步,将您的网站添加到"本地Intranet"区域,并至少选择"选项/安全设置/本地Intranet /自定义级别"下的"仅在Intranet区域中自动登录"选项.
第四,确保用户和应用程序服务器位于同一个域中.
要解决此问题,您必须启用Windows身份验证功能.请按照以下步骤操作:
单击"开始",然后单击"控制面板".打开"程序"组. - 在"程序和 - 功能"下,单击"打开或关闭Windows功能". - 展开标记为Internet Information Services的项目. - 展开标记为万维网服务的项目. - 扩展项目安全性 - >确保选择Windows身份验证
此外,您还需要从IIS中禁用匿名身份验证,如下所示: - 在IIS中单击您的应用程序 - 双击IIS组下的身份验证 - 单击"匿名身份验证" - 单击"操作"下右侧的"禁用".希望这可以帮助