HttpContext.Current.User.Identity.Name在Visual Studio 2017中不起作用

时间:2018-09-10 20:22:11

标签: c# asp.net visual-studio-2017

我们最近将Visual Studio从2010年升级到了2017年。代码可以编译并正常运行,但HttpContext.Current.User.Identity.Name突然停止工作

它为空白。

有什么可以改变的?它与IIS Express有关系吗?

谢谢您的帮助

3 个答案:

答案 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
  }
},