Это не дублирующий вопрос (насколько я исследовал).Моя проблема в том, что все работает хорошо, когда я запускаю приложение ASP.NET Core 2.1 MVC в VS 2019, но когда я развертываю в локальном IIS и запускаю свое приложение в браузере, оно не работает.Моя операционная система - Windows 10.
Я включил ниже в IIS
Я делаюниже, чтобы получить имя пользователя, который запустил мое приложение ASP.NET Core 2.1 MVC в браузере.
В Свойства -> launchSettings.json
"windowsAuthentication": true,
"anonymousAuthentication": false,
В Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}
В Helper.cs
public static string GetUserName(IHttpContextAccessor httpContextAccessor)
{
string userName = string.Empty;
if(httpContextAccessor != null &&
httpContextAccessor.HttpContext != null &&
httpContextAccessor.HttpContext.User != null &&
httpContextAccessor.HttpContext.User.Identity != null)
{
userName = httpContextAccessor.HttpContext.User.Identity.Name;
string[] usernames = userName.Split('\\');
userName = usernames[1].ToUpper();
}
return userName;
}
В MyController.cs
public class MyController : Controller
{
private readonly IHttpContextAccessor _httpContextAccessor;
public MyController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
[HttpPost]
public JsonResult CreateOrder([FromBody] OrderModel model)
{
string username = Helper.GetUserName(_httpContextAccessor);
.....
}
}
Когда я запускаю свое приложение в VS 2019, все в порядке, но когда я публикую свое приложение в IIS и запускаю его в браузере, я получаю сообщение об ошибке из-за httpContextAccessor.HttpContext.User.Identity.Name null.
Я также пробовал различные способы, например FindFirst, используя утверждения, но все они хорошо работают, когда я работаю в VS 2019, но не публикую свое приложение в IIS и не запускаю его в браузере.Какую ошибку я делаю.
Заранее спасибо.