用户未通过外部登录进行身份验证

卡米尔·温茨

我使用 dotnet 核心 v2.0.0。我已经按照这篇文章迁移了我的身份验证:https : //go.microsoft.com/fwlink/?linkid=845470

目前它看起来像这样:

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddDbContext<DatabaseContext>()
        .AddIdentity<AppUser, IdentityRole>()
        .AddEntityFrameworkStores<DatabaseContext>()
        .AddDefaultTokenProviders();

    services
        .AddAuthentication()
        .AddFacebook(o => {
            o.AppId = "my id";
            o.AppSecret = "my secret";
        });

    services
        .AddAuthorization()
        .AddRouting()
        .AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
    app.UseWebSockets();
    app.UseAuthentication();
    ServiceProvider = serviceProvider;
    Routing.AddRoutes(app);

    app.UseStaticFiles();
    app.UseMvc();
}

和回调:

[Route("api/account/external")]

public async Task<IActionResult> GetExternalLogin(string provider, string error = null)
{
    if (error != null)
    {
        return BadRequest(Uri.EscapeDataString(error));
    }

    // info is null
    // but HttpContext.Request.Cookies does contain a cookie
    var info = await _signInManager.GetExternalLoginInfoAsync();

    ....
}

基于表单的注册和认证工作。当我尝试使用 Facebook 登录时,我被重定向到登录窗口,可以输入我的密码,然后被重定向回我的应用程序。

一个名为 Identity.External 的 cookie 被创建并通过请求发送。但是我的用户没有经过身份验证,我也没有任何声明。为什么 Identity 不使用 cookie?如果我无法通过 SignInManager 访问它,有没有办法通过解析 cookie 来读取提供程序密钥?

卡米尔·温茨

我终于找到了解决方法!似乎我可以通过 AuthenticateAsync 获得我需要的所有信息:

var auth = await HttpContext.AuthenticateAsync(IdentityConstants.ExternalScheme);
var principal = auth.Principal;
var providerKey = auth.Principal.Claims.FirstOrDefault();

Provider 是“Facebook”,providerKey.Value 是 provider key,我可以通过 auth.Principal.Identity.Name 获取用户名。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SSH用户未通过kerberos进行身份验证

来自分类Dev

为什么我的AWS Congito用户能够使用Auth.currentAuthenticatedUser()进行登录,但“未通过身份验证”?

来自分类Dev

如果用户未通过身份验证,请转到登录页面

来自分类Dev

Laravel-如果用户未通过身份验证,如何重定向到登录

来自分类Dev

Laravel,如果用户未通过身份验证,则重定向到特定的登录页面

来自分类Dev

eCatcher登录错误(对等方未通过身份验证)

来自分类Dev

使用Passportjs的Google登录未通过身份验证

来自分类Dev

登录时对用户进行身份验证

来自分类Dev

反应-重定向用户未通过身份验证

来自分类Dev

AIP RMS sdk 2.1:用户未通过身份验证

来自分类Dev

“密钥用户未通过身份验证”,了解 Android KeyStore

来自分类Dev

通过LDAP进行外部身份验证

来自分类Dev

表单身份验证未通过身份验证无法正常使用外部链接

来自分类Dev

OWIN外部登录,没有持久的用户不进行身份验证

来自分类Dev

OWIN身份验证未通过身份验证

来自分类Dev

如何存储要通过Firebase简单登录电子邮件/密码进行身份验证的用户?

来自分类Dev

引导映像未通过身份验证

来自分类Dev

Django使用登录的Windows域用户进行身份验证

来自分类Dev

仅对已登录用户的视频进行身份验证

来自分类Dev

仅对已登录用户的视频进行身份验证

来自分类Dev

登录时对用户进行身份验证-Laravel

来自分类Dev

如何通过代理身份验证进行远程登录?

来自分类Dev

如果未通过身份验证,则在所有路由上重定向以登录

来自分类Dev

Javascript-单击按钮时,如果未通过身份验证,则重定向到“登录”页面

来自分类Dev

如果未通过身份验证,重定向到登录屏幕 - ASP.NET Core 2.2

来自分类Dev

React-admin - 如果未通过身份验证,我如何强制 Dasbhoard 要求登录

来自分类Dev

如果用户未通过身份验证,则显示公共逻辑React JS和Node API

来自分类Dev

如果用户未通过身份验证,则重定向到索引页面

来自分类Dev

如果用户未通过身份验证的MVC,则显示引导程序模式窗口

Related 相关文章

  1. 1

    SSH用户未通过kerberos进行身份验证

  2. 2

    为什么我的AWS Congito用户能够使用Auth.currentAuthenticatedUser()进行登录,但“未通过身份验证”?

  3. 3

    如果用户未通过身份验证,请转到登录页面

  4. 4

    Laravel-如果用户未通过身份验证,如何重定向到登录

  5. 5

    Laravel,如果用户未通过身份验证,则重定向到特定的登录页面

  6. 6

    eCatcher登录错误(对等方未通过身份验证)

  7. 7

    使用Passportjs的Google登录未通过身份验证

  8. 8

    登录时对用户进行身份验证

  9. 9

    反应-重定向用户未通过身份验证

  10. 10

    AIP RMS sdk 2.1:用户未通过身份验证

  11. 11

    “密钥用户未通过身份验证”,了解 Android KeyStore

  12. 12

    通过LDAP进行外部身份验证

  13. 13

    表单身份验证未通过身份验证无法正常使用外部链接

  14. 14

    OWIN外部登录,没有持久的用户不进行身份验证

  15. 15

    OWIN身份验证未通过身份验证

  16. 16

    如何存储要通过Firebase简单登录电子邮件/密码进行身份验证的用户?

  17. 17

    引导映像未通过身份验证

  18. 18

    Django使用登录的Windows域用户进行身份验证

  19. 19

    仅对已登录用户的视频进行身份验证

  20. 20

    仅对已登录用户的视频进行身份验证

  21. 21

    登录时对用户进行身份验证-Laravel

  22. 22

    如何通过代理身份验证进行远程登录?

  23. 23

    如果未通过身份验证,则在所有路由上重定向以登录

  24. 24

    Javascript-单击按钮时,如果未通过身份验证,则重定向到“登录”页面

  25. 25

    如果未通过身份验证,重定向到登录屏幕 - ASP.NET Core 2.2

  26. 26

    React-admin - 如果未通过身份验证,我如何强制 Dasbhoard 要求登录

  27. 27

    如果用户未通过身份验证,则显示公共逻辑React JS和Node API

  28. 28

    如果用户未通过身份验证,则重定向到索引页面

  29. 29

    如果用户未通过身份验证的MVC,则显示引导程序模式窗口

热门标签

归档