簡體   English   中英

登錄時的負面場景

[英]Negative Scenario on login

在登錄過程中,在嘗試輸入錯誤密碼時,我需要更改用戶目錄中的一些標志和屬性,然后才能在用戶旅程中引發任何錯誤。 一旦 login-nonInteractive 拋出密碼異常,用戶旅程就會中斷,我們如何實現這一點?

  1. 在登錄技術配置文件中稱為驗證技術配置文件的login-noninteractive技術配置文件中,設置"ContinueOnError"="true"

     <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email"> <ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="login-NonInteractive" "ContinueOnError"="true"/> </ValidationTechnicalProfiles> </TechnicalProfile>
  2. login-noninteractive non-interactive 技術配置文件中,為objectId設置一個defaultValue ,例如"DefaultValue"="badPassword"

     <TechnicalProfile Id="login-NonInteractive"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid" "DefaultValue"="badPassword"/> </TechnicalProfile>
  3. 在您的登錄技術配置文件中,將先決條件應用於下一個驗證技術配置文件,以便它僅在objectId!=badPassword執行。 這里調用一個技術配置文件來執行錯誤密碼場景的工作量。

     <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email"> <ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="login-NonInteractive" "ContinueOnError"="true"/> <ValidationTechnicalProfile ReferenceId="Run-Custom-BadPwd-Logic"> <Preconditions> <Precondition Type="ClaimEquals" ExecuteActionsIf="false"> <Value>objectId</Value> <Value>badPassword</Value> <Action>SkipThisValidationTechnicalProfile</Action> </Precondition> </Preconditions> </ValidationTechnicalProfile> </ValidationTechnicalProfiles> </TechnicalProfile>
  4. 現在我們需要停止錯誤密碼的流程。 skip if objectId!=badPassword ,則調用另一個帶有前置條件的驗證技術配置文件。

     <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email"> <ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="login-NonInteractive" "ContinueOnError"="true"/> <ValidationTechnicalProfile ReferenceId="Run-Custom-BadPwd-Logic"> <Preconditions> <Precondition Type="ClaimEquals" ExecuteActionsIf="false"> <Value>objectId</Value> <Value>badPassword</Value> <Action>SkipThisValidationTechnicalProfile</Action> </Precondition> </Preconditions> </ValidationTechnicalProfile> <ValidationTechnicalProfile ReferenceId="Block-BadPwd-User"> <Preconditions> <Precondition Type="ClaimEquals" ExecuteActionsIf="false"> <Value>objectId</Value> <Value>badPassword</Value> <Action>SkipThisValidationTechnicalProfile</Action> </Precondition> </Preconditions> </ValidationTechnicalProfile> </ValidationTechnicalProfiles> </TechnicalProfile>
  5. 這個(Block-BadPwd-User)應該調用一個聲明轉換技術配置文件,它執行一個 boolean 斷言。 首先調用一個聲明轉換來比較objectId"badPassword" , output 一個 boolean 聲明 (booleanBadPassword=true/false)。 第二個聲明轉換booleanBadPassword與 boolean (false) 進行比較。 在此處使用AssertBooleanClaimIsEqualToValue轉換,如果booleanBadPassword不等於false將引發錯誤。

     <TechnicalProfile Id="Block-BadPwd-User"> <DisplayName>Block-BadPwd-User</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <OutputClaims> <OutputClaim ClaimTypeReferenceId="booleanBadPassword" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="compareObjectIdValue" /> <OutputClaimsTransformation ReferenceId="AssertValueIsFalse" /> </OutputClaimsTransformations> </TechnicalProfile>
     <ClaimsTransformation Id="compareObjectIdValue" TransformationMethod="CompareClaimToValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="objectId" TransformationClaimType="inputClaim1" /> </InputClaims> <InputParameters> <InputParameter Id="compareTo" DataType="string" Value="badPassword" /> <InputParameter Id="operator" DataType="string" Value="equal" /> <InputParameter Id="ignoreCase" DataType="string" Value="true" /> </InputParameters> <OutputClaims> <OutputClaim ClaimTypeReferenceId="booleanBadPassword" TransformationClaimType="outputClaim" /> </OutputClaims> </ClaimsTransformation> <ClaimsTransformation Id="AssertValueIsFalse" TransformationMethod="AssertBooleanClaimIsEqualToValue"> <InputClaims> <InputClaim ClaimTypeReferenceId="booleanBadPassword" TransformationClaimType="inputClaim" /> </InputClaims> <InputParameters> <InputParameter Id="valueToCompareTo" DataType="boolean" Value="false" /> </InputParameters> </ClaimsTransformation>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM