小编Pra*_*esh的帖子

ASP.NET 核心 Web API 和 Angular 客户端中的外部身份验证

我有一个使用 asp.net core Web API 的 angular 应用程序。我需要为 google 和 facebook 登录添加外部身份验证,以便我的 Web 和移动应用程序可以使用此 Web api 对用户进行身份验证。我已经浏览了为此提供的文档和教程,例如 thisthis, 但它们都没有帮助我,因为我的Web应用程序在Angular 5上。

我的实际问题是如何获取将我重定向到 Google 或 Facebook 登录页面的 URL。

大多数情况下,它们都使用脚手架的 Asp.net mvc 应用程序,其中有一个控制器:AccountController with Methods ExternalLogins

GET /api/Account/ExternalLogins?returnUrl=%2F&generateState=true
Run Code Online (Sandbox Code Playgroud)

他们说响应将是这样的 json:

   [{"name":"Facebook",
  "url":"/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=http%3A%2F%2Flocalhost%3A15359%2F&state=QotufgXRptkAfJvcthIOWBnGZydgVkZWsx8YrQepeDk1",
  "state":"QotufgXRptkAfJvcthIOWBnGZydgVkZWsx8YrQepeDk1"}]
Run Code Online (Sandbox Code Playgroud)

这个 JSON 正是我所需要的,因为我需要一个这样的 URL 来打开 facebook 或 google 登录页面。上面的链接使用脚手架项目和已经在那里编写的所有代码,这些代码非常适合 Asp.net Web 应用程序。但就我而言,我已经从头开始使用 web api,我的 web 应用程序是 Angular 5。此外,如果我尝试了一个脚手架 web api 项目,但我找不到任何名为 AccountController 的控制器,也找不到任何名为 ExternalLogins 的方法来获取 JSON包含提供者名称和登录页面 url。看起来它的完成方式在 .net core 2 中已经改变。上面的第一个链接显示了两种方法,将 GoogleAuthentication 包含在 Asp.net core 1 和 Asp.net …

asp.net-mvc facebook google-authentication asp.net-core-webapi asp.net-core-2.0

5
推荐指数
1
解决办法
1708
查看次数

Asp.net核心2 - WebApi中的外部身份验证

现在我知道有很多关于这个的帖子,但我的情况有所不同.所以请耐心等待.

当我在.Net Framework上创建WebApi并选择个人用户帐户时,它已经为我提供了一个外部身份验证的工作代码. 在此输入图像描述

有AccountController,Startup.auth.cs和其他具有外部身份验证代码的文件 在此输入图像描述

现在我知道.net核心已经发生了变化.但个人用户帐户的net.core web api与它没有任何相似之处.

当我尝试在.net Core上使用WebApi时,它只为我提供了一个选择Azure应用程序的选项.在下图中,使用.net核心上的WebApi,蓝色指向的下拉列表仅提供一个Azure AD b2c应用程序选项.没有帐户控制器是脚手架,也没有其他配置文件用于外部身份验证.

在此输入图像描述

没有我需要的文件. 在此输入图像描述

我试过这些链接:https: //docs.microsoft.com/en-us/aspnet/web-api/overview/security/external-authentication-services

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/

但第一个链接是针对.net框架,但对我没有帮助.第二只适用于Web应用程序的asp.net核心,但不是的WebAPI

我需要在web api中进行外部身份验证,因为我希望所有来自Web或移动设备的用户都可以通过Google或Facebook进行身份验证.请任何人指出我正确的方向.我在这里错过了一些东西.有没有文件可以帮我解决这个问题?

authentication asp.net-authentication .net-core asp.net-core-webapi asp.net-core-2.0

5
推荐指数
1
解决办法
1972
查看次数

为什么使用ViewContainerRef而不是*ngif?

我可以这样做

<my-awesome-component *ngIf="ConditionToIncludeComponent"></my-awesome-component>
Run Code Online (Sandbox Code Playgroud)

但是动态插入组件的每个文档都基于ViewContainerRef.我喜欢它的功能.但是什么使它在*ngif上如此特别?

只需指出两者的优点和缺点.请.谢谢!

dom dom-manipulation angular-components angular

4
推荐指数
1
解决办法
1256
查看次数

如何为对象创建行为主题并在另一个组件上订阅它?

我在服务类中创建了一个行为主题.

    public personObject: BehaviorSubject<any> = new BehaviorSubject<any>({
                                               personId: 1,
                                               name: 'john doe'
                                               });
Run Code Online (Sandbox Code Playgroud)

在导入此服务的组件上,我已订阅此行为主题,如下所示:

`        this._subscription.add(
            this._bankService.personObject.subscribe(data => {
                this.personObject = data;
                console.log(data);
            })
        );`
Run Code Online (Sandbox Code Playgroud)

但我无法在行为主题中获得准确的数据集.请帮忙.

编辑 我忘了提到我已经使用ViewContainerRef来创建我的兄弟组合.所以我添加了一个答案,对我的问题几点评论.

object rxjs typescript behaviorsubject angular

4
推荐指数
2
解决办法
2万
查看次数