![](/img/trans.png)
[英]how do I get the Omnisharp extension to work in Visual Studio Code
[英]HttpContext works differently in visual studio Code with OmniSharp extension
我安装了Visual Studio Code并安装了C#Extension
https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp
当我打开现有的Asp.Net Core 2项目时,我可以编辑文件并使用调试选项运行Web服务器(“ Debug > Start Debugging
)
但是然后我得到了关于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身份验证设置中 ,但我不知道在哪里进行设置?
任何想法 ?
这与托管Asp.Net Core
。 通常,有三个选项可用于启动新项目: IIS
, IIS Express
和Project
。 从VS 2017
启动时,您可以使用支持Windows Authentcation
IIS Express
,并且可以通过launchsettings.json
对其进行launchsettings.json
。
但是, VS Code
不支持从IIS
或IIS Express
启动。 然后,在使用VS Code
时,您将按Project
选择.NET Core
。 当您使用自托管的Project
,您将需要使用Http.sys
用Windows Authencation
支持Windows Authentication
。
为了解决您的问题,您可以修改如下的Program.cs
以将Http.sys
与Windows Authentcation
一起使用。
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseHttpSys(options => {
options.Authentication.Schemes =
AuthenticationSchemes.NTLM | AuthenticationSchemes.Negotiate;
options.Authentication.AllowAnonymous = false;
})
.Build();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.