我们最近将Visual Studio从2010年升级到了2017年。代码可以编译并正常运行,但HttpContext.Current.User.Identity.Name突然停止工作
它为空白。
有什么可以改变的?它与IIS Express有关系吗?
谢谢您的帮助
答案 0 :(得分:0)
您需要在配置文件中有一个选项才能启用winforms身份验证。默认情况下未启用
<system.web>
<compilation debug="true" targetFramework="4.7.1" />
<httpRuntime targetFramework="4.7.1" />
<authentication mode="Forms"/>
</system.web>
答案 1 :(得分:0)
这是对我有用的
在解决方案文件夹中找到相应的applicationhost.config
找到以下几行
<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />
将它们更改为
<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
然后将以下内容添加到web.config
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
像魅力一样工作
答案 2 :(得分:0)
.NET Core 中的修复与上面提到的相似,但更改将在“launchSettings.json”文件中进行。更改 windowsAuthentication 和anonymousAuthentication 从:
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:<your port number>",
"sslPort": 0
}
},
致:
"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": false,
"iisExpress": {
"applicationUrl": "http://localhost:<your port number>",
"sslPort": 0
}
},