Windows 身份验证 - .NET Core Angular 应用程序



我正在使用Visual Studio 2017构建一个Intranet应用程序,并使用模板使用Angular创建.NET Core Web应用程序。由于它是一个内部网应用程序,我们希望实现Windows身份验证。用户已登录到网络,我们不希望他们在访问应用程序时再次输入其凭据。

如何设置我的 Angular 应用程序,以便它可以识别已经登录到网络的用户并适当地传递它。我们有一个 Web API 身份验证 API,它可以获取此用户 ID 并确定用户存在于哪些 AD 组中,以确定对应用程序的授权。

我特别问的问题是关于Angular Windows身份验证的。不是 Web API Windows 身份验证。我提出的非常具体的观点是,我想了解如何将登录的Windows AD帐户传递到用于授权的服务中,而无需要求用户在登录表单中专门输入其凭据。下面的问题没有解决我的问题。

如何将 ASP.NET 核心应用程序配置为使用 Windows 身份验证?

在客户端,您是否尝试过在发送请求之前设置withCredentials: true

我会创建一个角度拦截器并在那里设置属性,以便始终设置每个请求。 像这样:

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class CustomInterceptor implements HttpInterceptor {
constructor() { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
withCredentials: true
});
return next.handle(request);
}
}

然后在服务器端检查User.Identity这应该会让您获得登录的用户 AD 详细信息。

我已经这样做了,使用 Chrome 我不必输入任何登录详细信息。它似乎不适用于我的火狐,因为您必须第一次登录。

希望这有帮助。

相关内容

最新更新