2017-06-15 64 views
0

如果在多個技術檔案中定義了相同的輸出聲明,那麼期望的行爲是什麼?來自多個技術檔案的相同輸出聲明

特別是如果技術文件發出輸出聲明並且稍後執行的另一個技術配置文件定義相同的輸出聲明但在運行時不會發出聲明,那麼期望的行爲是什麼?

回答

1

如果存在兩個不同的OrchestrationSteps,其中每個包含發出相同索賠的TechnicalProfile,則來自後面步驟的TechnicalProfile將「覆蓋」索賠的值(如果這樣的索賠發出)。

讓我們來看一個具體的(儘管有些化妝)的例子。

步驟1使用TechnicalProfile作爲SelfAsserted頁面,通過「OutputClaim ClaimTypeReferenceId =」givenName「」向用戶詢問他們的名字。用戶在此頁面填寫名稱「John」,並繼續。

第2步使用TechnicalProfile與Google進行ClaimExchange,可能也會通過「OutputClaim ClaimTypeReferenceId =」givenName「」發出第一個名稱。

但是,用戶在Google上創建自己的帳戶時可能沒有註冊過他們的名字。如果第一個名字可用(讓名稱爲「Lingeshwaran」),那麼Google將發出該聲明,B2C將使用該聲明。在這種情況下,givenName的第2步後的最終結果值將是「Lingeshwaran」。

如果用戶在創建他們的Google帳戶時沒有填寫他們的名字,那麼Google會在他們的令牌中發出的聲明中缺失。因此,現有的「givenName」聲明將不會被覆蓋,並且給定名稱的第2步後的結果值將爲「John」。

+0

謝謝約翰。這很有幫助。 –

+0

@LingeshwaranPalaniappan,你可以請upvote約翰的答案,並標記問​​題的答案。 – Saca

+0

顯然我沒有足夠的積分upvote :)我如何將它標記爲回答? –