首页 文章

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

提问于
浏览
2

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

如何设置我的Angular应用程序,以便它可以识别已登录到网络并正确传递的用户 . 我们有一个Web API身份验证API,可以获取此用户ID并确定用户所在的AD组,以确定对应用程序的授权 .

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

How to configure ASP.NET Core application to use windows authentication?

1 回答

  • 1

    在客户端,您是否尝试在发出请求之前设置 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我不必输入任何登录详细信息 . 它似乎不适用于我的Firefox,因为你必须第一次登录 .

    希望这可以帮助 .

相关问题