在Visual Studio 2013中调试时,我正在尝试获取windows用户名。我只是简单地使用:
httpcontext.current.user.identity.name
如果我在我的Dev Server上运行它,它工作得很好,如果我在任何以前版本的Visual Studio上以调试模式运行它,它也工作得很好。
我的问题是-如果我在visual studio 2013上运行它,我会得到一个空字符串。
我的web配置如下所示。
<system.web>
<authentication mode="Windows"/>
<identity impersonate="false"/>
<authorization>
<allow users="*"/>
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
</system.web>
发布于 2013-10-22 18:54:46
当我研究这个问题时,我找到了我的答案,但在互联网上找不到答案,所以我想我应该分享一下:
我通过修改我的applicationhost.config文件解决了这个问题。我的文件保存在"\My Documents\IISExpress\config“文件夹中。
VS2013似乎忽略了我的web.config文件,并应用了不同的身份验证方法。
我不得不修改文件的这一部分,使其看起来像下面这样。实际上,我只将anonymousAuthentication修改为false,将windowsAuthentication模式修改为true。
<authentication>
<anonymousAuthentication enabled="false" userName="" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="true">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
发布于 2013-12-31 19:58:27
我刚刚从VS2012升级到VS2013,当前的用户身份(HttpContext.User.Identity)是匿名的。
我尝试更改IIS express的applicationhost.config,没有区别。
解决方案是查看web项目的属性,当您选择了项目的顶层时,点击F4来获取项目属性。不要右键单击项目并选择属性,这是完全不同的。
将匿名身份验证更改为禁用,将Windows身份验证更改为启用。
像肉汁一样工作:)
发布于 2013-12-11 21:28:57
在项目的VS2013 F4中查看属性窗口,禁用匿名访问并启用"Windows身份验证“
那么它就会起作用。不需要更改其他任何内容
https://stackoverflow.com/questions/19515890
复制相似问题