HttpContext在具有OmniSharp扩展名的Visual Studio Code中的工作方式有所不同

时间:2018-07-25 14:28:33

标签: c# visual-studio-code asp.net-core-mvc

我安装了Visual Studio Code并安装了C#Extension

https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

当我打开现有的 Asp.Net Core 2 项目时,我可以编辑文件并使用调试选项(Debug > Start Debugging)运行Web服务器

但是随后我得到了关于HttpContext的空异常(Visual Studio 2017的调试不会引发此错误)

@User.Identity.Name.Replace(@"Domain\", string.Empty)

当我将代码更改为

@System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();

有效。因此在我看来,C#Extension运行的Web服务器或使用的设置与Visual Studio 2017不同。我假设问题可能出在 Windows身份验证设置中,但是我不知道在哪里设置?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这与托管Asp.Net Core有关。通常,有三个启动新项目的选项:IISIIS ExpressProject。从VS 2017启动时,可以使用支持IIS Express的{​​{1}},也可以通过Windows Authentcation对其进行配置。

但是,launchsettings.json不支持从IISIIS Express启动。然后,在使用VS Code时,您将.NET CoreProject。当您使用VS Code进行自我托管时,您需要将ProjectHttp.sys一起使用,以支持Windows Authencation

为解决您的问题,您可以像下面这样修改Windows Authentication,以将Program.csHttp.sys一起使用。

Windows Authentcation