es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar una etiqueta y un campo de texto de solo lectura para el correo electrónico en la tercera página antes de la etiqueta de la contraseña en su política personalizada para la recuperación de contraseña olvidada, puede seguir estos pasos:

    1. Navegue hasta la ruta de usuario en su archivo XML de política personalizada donde se llama el perfil técnico “LocalAccountDiscoveryUsingEmailAddress”, que muestra la página donde se le pide al usuario que ingrese su dirección de correo electrónico.
    2. Debajo de este perfil técnico, agregue un bloque de ClaimsTransformation para crear una nueva afirmación de solo lectura que contendrá el valor de la dirección de correo electrónico del usuario.

    Por ejemplo:

    <claimstransformation id="CreateReadOnlyEmailClaim" transformationmethod="FormatStringClaim">
      <inputclaims>
        <inputclaim claimtypereferenceid="email" transformationclaimtype="inputClaim"></inputclaim>
      </inputclaims>
      <inputparameters>
        <inputparameter id="stringFormat" datatype="string" value="{0}"></inputparameter>
      </inputparameters>
      <outputclaims>
        <outputclaim claimtypereferenceid="readonlyEmail" transformationclaimtype="outputClaim"></outputclaim>
      </outputclaims>
    </claimstransformation>
    

    Esto utiliza el método de transformación “FormatStringClaim” para crear una nueva afirmación llamada “readonlyEmail”, que contendrá el valor de la dirección de correo electrónico del usuario. La afirmación “email” se utiliza como entrada y se reemplaza el marcador “{0}” con el valor de la afirmación “email”.

    1. Agregue un bloque de ContentDefinition para la página donde se le pide al usuario que ingrese su nueva contraseña. En este bloque, agregue una etiqueta de texto y un control de texto de entrada para mostrar la dirección de correo electrónico del usuario.

    Por ejemplo:

    <contentdefinition id="api.localaccountpasswordreset">
      <loaduri>~/tenant/templates/AzureBlue/selfAsserted.cshtml</loaduri>
      <recoveryuri>~/common/default_pwd_reset_confirm</recoveryuri>
      <datauri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0</datauri>
      <metadata>
        <item key="DisplayName">Restablecimiento de contraseña</item>
      </metadata>
      <localizedresourcesreferences mergebehavior="Prepend">
        <localizedresourcesreference language="en" localizedresourcesreferenceid="api.localaccountpasswordreset.en"></localizedresourcesreference>
      </localizedresourcesreferences>
      <actions>
        <action id="readWriteEmail" type="ReadClaims">
          <displayclaims>
            <displayclaim claimtypereferenceid="email" controltype="EmailVerification"></displayclaim>
          </displayclaims>
          <outputclaims>
            <outputclaim claimtypereferenceid="email" required="true"></outputclaim>
          </outputclaims>
          <validationclaims>
            <validationclaim claimtypereferenceid="email"></validationclaim>
          </validationclaims>
        </action>
        <action id="readOnlyEmail" type="ReadClaims">
          <inputclaims>
            <inputclaim claimtypereferenceid="readonlyEmail" transformationclaimtype="inputClaim"></inputclaim>
          </inputclaims>
          <displayclaims>
            <displayclaim claimtypereferenceid="readonlyEmail" controltype="Text"></displayclaim>
          </displayclaims>
        </action>
        <action id="newPassword" type="CollectClaims">
          <validationclaims>
            <validationclaim claimtypereferenceid="newPassword"></validationclaim>
            <validationclaim claimtypereferenceid="reenterPassword"></validationclaim>
          </validationclaims>
          <displayclaims>
            <displayclaim claimtypereferenceid="readOnlyEmail" controltype="ReadonlyInput"></displayclaim>
            <displayclaim claimtypereferenceid="newPassword" controltype="NewPassword" required="true"></displayclaim>
            <displayclaim claimtypereferenceid="reenterPassword" controltype="ReenterPassword" required="true"></displayclaim>
          </displayclaims>
          <outputclaims>
            <outputclaim claimtypereferenceid="newPassword" required="true"></outputclaim>
            <outputclaim claimtypereferenceid="reenterPassword" required="true"></outputclaim>
          </outputclaims>
        </action>
        <action id="resetPassword" type="CombinedSignUpAndResetPassword">
          <validationclaimsexchange>
            <validationclaimsexchangetechnicalprofile technicalprofilereferenceid="AAD-UserReadUsingEmailAddress"></validationclaimsexchangetechnicalprofile>
          </validationclaimsexchange>
          <outputclaims>
            <outputclaim claimtypereferenceid="objectId"></outputclaim>
            <outputclaim claimtypereferenceid="newPassword"></outputclaim>
            <outputclaim claimtypereferenceid="reenterPassword"></outputclaim>
          </outputclaims>
        </action>
      </actions>
      <outputclaims>
        <outputclaim claimtypereferenceid="readonlyEmail"></outputclaim>
        <outputclaim claimtypereferenceid="email"></outputclaim>
        <outputclaim claimtypereferenceid="newPassword"></outputclaim>
      </outputclaims>
      <validationtechnicalprofiles>
        <validationtechnicalprofile referenceid="AAD-CommonPasswordPolicy"></validationtechnicalprofile>
      </validationtechnicalprofiles>
    </contentdefinition>
    

    Aquí, se agrega la acción “readOnlyEmail” para leer el valor de la afirmación “readonlyEmail” y se agrega una DisplayClaim para “readonlyEmail” con ControlType=”Text”.

    Finalmente, se actualiza la acción “newPassword” para incluir una DisplayClaim para “readOnlyEmail” con ControlType=”ReadonlyInput”, que mostrará la dirección de correo electrónico del usuario como un control de texto de entrada de solo lectura.

    Siguiendo estos pasos, la tercera página antes de la etiqueta de la contraseña en su política personalizada para la recuperación de contraseña olvidada mostrará una etiqueta y un campo de texto de solo lectura para el correo electrónico.

Comments are closed.