Я создал приложение для интрасети, которое должно знать, кто является пользователем Windows, прошедшим проверку подлинности, для обеспечения безопасности и проверки подлинности на основе ролей.
Никаких проблем с Edge ... проверенный пользователь определен правильно.В Chrome, тем не менее, пользователи постоянно получают запросы (даже если они вводят свои учетные данные в запросе).
Мне предлагается при локальном запуске веб-приложения (IIS Express), а также при развертывании на веб-сервере.под управлением IIS 7.5
Я пробовал различные конфигурации пула приложений iis, ни одна из которых не препятствует аутентификации.URL-адрес находится в списке доверенных веб-сайтов в окне «Свойства обозревателя».Проверка подлинности Windows и олицетворение идентичности включены в IIS.
Вызов API домашнего компонента:
constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string)
{
http.get<User>(baseUrl + 'api/Auth/GetUserName', {withCredentials: true}).subscribe(result =>
{
this.user = result;
}, error => console.error(error));
}
Контроллер C #:
[Route("api/[controller]")]
[ApiController]
public class AuthController : Controller
{
[AllowAnonymous]
[HttpGet("[action]")]
public User GetUserName()
{
WindowsIdentity currentUser = WindowsIdentity.GetCurrent();
string domainContextName = "";
try
{
DomainContext domainContext = AppHelper.CurrentDomainContext;
domainContextName = domainContext.UserId;
}
catch(Exception ex)
{
domainContextName = ex.Message;
}
User user = new User()
{
WindowsIdentityGetCurrent = currentUser.Name,
HttpContextUserIdentityName = HttpContext.User.Identity.Name,
DomainContextName = domainContextName
};
return user;
}
}