使用ASPNetIdentity從IdentityServer 4獲取電子郵件

asp.net-identity claims-based-identity entity-framework-core identityserver4

這是我的結構。

-Asp.Net c#IdentityServer 4用於註冊和驗證用戶的應用程序。

-Asp.Net C#Web API,提供使用Identity4Server授權用戶的某些服務

-Angular 4應用程序與ocid-client使用ASP.Net C#應用程序來驗證角度應用程序。

問題:實際上,當我在Web API應用程序中打印經過身份驗證的用戶聲明時,我看不到用戶電子郵件。有沒有辦法在索賠中看到它。

在WEB API應用程序中

    if (User.Identity.IsAuthenticated)
    {
        var claims = User.Claims.ToList();
        //Would like to see the User Email Informations
        var AspnetUserId = User.Claims.FirstOrDefault(p => p.Type == "sub").Value;

        this.ContactService.UpdateUserProfile(AspnetUserId,profile);
    }

在Indentity Server應用程序中

        new Client
        {
            ClientId = "tgc",
            ClientName = "Tag Twee Client Angular",
            AllowedGrantTypes = GrantTypes.Implicit,

            RequireConsent = false,
            AllowAccessTokensViaBrowser = true,
            RedirectUris = { "http://localhost:5002/login" },
            PostLogoutRedirectUris = { "http://localhost:5002/logout" },
            AllowedCorsOrigins = { "http://localhost:5002" },
            AllowedScopes =
            {
                IdentityServerConstants.StandardScopes.OpenId,
                IdentityServerConstants.StandardScopes.Profile,
                "TTAPI",
                IdentityServerConstants.StandardScopes.Email
            }
        }

熱門答案

您需要在dbo.AspNetUserClaims(在ASPNetIdentity數據庫中)中添加值,IdentityServer4將從此表中獲取值並設置為用戶聲明。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow