第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

AspNet 用戶聲明失蹤

AspNet 用戶聲明失蹤

C#
皈依舞 2023-08-20 11:01:31
研究身份提供者的概念證明并需要幫助理解 aspnet 身份的一些細(xì)微差別,特別是與用戶聲明相關(guān)的細(xì)微差別。我正在努力實(shí)現(xiàn)的目標(biāo):1) 公開(kāi)一個(gè) MVC 應(yīng)用程序,該應(yīng)用程序提供對(duì)將公開(kāi)體育和運(yùn)動(dòng)員數(shù)據(jù)的 2 個(gè)微服務(wù)之一的安全訪問(wèn)。2) 允許本地用戶帳戶和外部帳戶(例如 google 或 facebook auth)。當(dāng)前設(shè)置:1) 利用 Identity Server 4 進(jìn)行身份驗(yàn)證的 Asp.Net MVC 應(yīng)用程序。2) 兩個(gè) Web Api 2 Web 服務(wù)(1 個(gè)用于體育運(yùn)動(dòng),1 個(gè)用于運(yùn)動(dòng)員)。Sports API 不安全...即...開(kāi)放 API。不過(guò),運(yùn)動(dòng)員 API 應(yīng)通過(guò)基于策略的授權(quán)來(lái)保護(hù)。3) Identity Server 4 Web 應(yīng)用程序,通過(guò) IdentityServer4 nuget 包利用實(shí)體框架和 ASP.NET Identity。4) SQL Server 數(shù)據(jù)庫(kù)“完全”配置為 api 資源、身份資源、客戶端、幾個(gè)具有不同角色和聲明的測(cè)試用戶進(jìn)行測(cè)試。目前有效的方法:1)所有用戶都可以登錄(本地和谷歌)2) 聲明似乎正在按我的預(yù)期加載(仍在努力理解 Identity Server 數(shù)據(jù)模型中聲明表的所有關(guān)系)。3) MVC 應(yīng)用程序顯示 id_token、access_token、refresh_token,然后循環(huán)遍歷用戶的聲明并顯示這些內(nèi)容。什么不起作用:1) 并非所有我認(rèn)為應(yīng)該在 mvc 應(yīng)用程序中顯示的聲明都實(shí)際顯示。我的意思的例子:1) 在下面的第一個(gè)屏幕截圖中,您可以看到給定的名稱和家庭名稱作為用戶“bob”的聲明。這是在 MVC razor 中使用以下代碼片段顯示的:@if (User.Identities.First().IsAuthenticated){    <h1>Tokens:</h1>    <dt>id token</dt>    <dd>@await ViewContext.HttpContext.GetTokenAsync("id_token")</dd>    <dt>access token</dt>    <dd>@await ViewContext.HttpContext.GetTokenAsync("access_token")</dd>    <dt>refresh token</dt>    <dd>@await ViewContext.HttpContext.GetTokenAsync("refresh_token")</dd>    <br />    <h1>Claims:</h1>    <dl>        @foreach (var claim in User.Claims)        {            <dt>@claim.Type : @claim.Value</dt>        }    </dl>}2) 在第二個(gè)屏幕截圖中,您可以看到身份服務(wù)器生成的訪問(wèn)令牌中包含的其他“聲明”。例如,“權(quán)限”、“測(cè)試”、“角色”、“testingroleclaim”和“oddball”。除了一些地方之外,大部分代碼都直接來(lái)自 Identity Server 4 文檔的快速入門教程。根據(jù)我讀到的所有內(nèi)容,為了包含自定義聲明,您需要實(shí)現(xiàn)自己的 IProfileService 接口實(shí)例。我已經(jīng)這樣做了,它似乎按預(yù)期工作。以下是代碼和屏幕截圖,顯示調(diào)試器中加載的“其他”聲明:
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

客戶端應(yīng)用程序負(fù)責(zé)在連接 openid 中間件時(shí)設(shè)置 OpenIdConnect 選項(xiàng)。選項(xiàng)對(duì)象的屬性之一稱為“ClaimActions”。這些聲明操作允許客戶端連接自定義映射屬性。

以下是我添加到客戶端啟動(dòng)類中的代碼,以使該代碼適用于一組自動(dòng)序列化的聲明。

services.AddAuthentication(options =>

{

? ?options.DefaultScheme = "Cookies";

? ?options.DefaultChallengeScheme = "oidc";

})

.AddCookie("Cookies")

.AddOpenIdConnect("oidc", options =>

{? ? ? ? ? ? ? ? ? ??

? ? options.SignInScheme = "Cookies";


? ? options.Authority = "http://localhost:5000";

? ? options.RequireHttpsMetadata = false;


? ? options.ClientId = "mvc";

? ? options.ClientSecret = "secret";

? ? options.ResponseType = "code id_token";


? ? options.SaveTokens = true;

? ? options.GetClaimsFromUserInfoEndpoint = true;


? ? options.Scope.Add("athlete.full");

? ? options.Scope.Add("rights");

? ? options.Scope.Add("email");

? ? options.Scope.Add("address");

? ? options.Scope.Add("phone");


? ? options.Scope.Add("offline_access");


? ? // These are what allowed the claims to be serialized for front-end consumption.

? ? options.ClaimActions.MapJsonKey(JwtClaimTypes.WebSite, "website");

? ? options.ClaimActions.MapJsonKey(JwtClaimTypes.Gender, "gender");

? ? options.ClaimActions.MapJsonKey(JwtClaimTypes.BirthDate, "birthdate");

});


查看完整回答
反對(duì) 回復(fù) 2023-08-20
  • 1 回答
  • 0 關(guān)注
  • 112 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)