当前位置:  开发笔记 > 后端 > 正文

HttpContext.Current.User.Identity.Name为Empty

如何解决《HttpContext.Current.User.Identity.Name为Empty》经验,为你挑选了4个好方法。

我有一个Silverlight应用程序(使用MVC),当我在Visual Studio中构建时,使用Visual Studio开发中心,没有问题,它HttpContext.Current.User.Identity.Name有一个价值

但是当我在IIS 7.5中使用相同的项目时(我正在使用Windows 7),HttpContext.Current.User.Identity.Name保持空白

有谁可以提供帮助?或者知道我在哪里可以从visual studio开发中心找到设置,所以我可以检查IIS中有什么问题?



1> Bryan Bedard..:

这几天我一直在努力解决这个问题.

我建议阅读Scott Guthrie的博客文章Recipe:在Intranet ASP.NET Web应用程序中启用Windows身份验证

对我来说,问题是虽然我在IIS中启用了Windows身份验证,而我web.config部分中已经启用了,但我没有阻止匿名访问.最后一部分是关键.您需要阻止匿名访问以确保浏览器发送凭据.

您可以在控制面板中配置IIS,以便您的站点(或计算机)使用Windows身份验证并拒绝匿名访问,或者您可以将以下内容添加到system.web部分中的web.config:




   


为我工作虽然我的Identity.Name只是间歇性地空白,从第二到第二.不知道为什么,如果有人能解释会感兴趣吗?

2> digitally_in..:

这些可能会解决问题(它对我有用).在IIS Express中,更改项目属性值"匿名身份验证"和"Windows身份验证".为此,在选择项目时,按F4,然后更改这些属性.

在此输入图像描述

如果您在本地将其部署在IIS上,请确保已启用本地计算机"Windows身份验证"功能并禁用"匿名身份验证".

参考

https://grekai.wordpress.com/2011/03/31/httpcontext-current-user-identity-name-is-empty/



3> 小智..:

除了“ 11年3月28日在12:27回答布莱恩·贝达德”

如果解决方案不起作用,则必须在iss manager中启用Windows身份验证。怎么做:

1.要从“运行”对话框中启动IIS管理器,请执行以下操作:在“开始”菜单上,依次单击“所有程序”,“附件”,然后单击“运行”。在“打开”框中,键入inetmgr,然后单击“确定”。

2.在“连接”窗格中,展开服务器名称,再展开“站点”,然后转到要配置的层次结构窗格中的级别,然后单击“网站”或“ Web应用程序”。3.滚动到“主页”窗格中的“ IIS”部分,然后双击“身份验证”。

4.在“身份验证”窗格中,选择“匿名身份验证”,然后单击“禁用”。

    在“身份验证”窗格中,选择“ Windows身份验证”,然后单击“启用”。

参考



4> PaulTheCycli..:

我最近也有这个问题。使用新客户端,尝试使用Windows身份验证通过IISExpress从Visual Studio运行一个旧的Web窗体应用程序。对我而言,正确配置了web.config

但是,IISExpress.config设置文件具有:


开发人员已登录的用户帐户是非常新的,因此已经对其进行了编辑。简单修复后,将其更改为enabled = true,然后按预期运行。

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有