Invitaciones

Una invitación atrae a las personas al portal a propósito: el personal elige quién lo recibe y los roles que otorga, y a cada destinatario se le envía un enlace propio. Al seguirla, se crea su inicio de sesión en el contacto que ya existe para ellos — con contraseña o inicio de sesión externo — o, si ya tienen uno, añade los roles a él. Así es como un portal que no permite que desconocidos se registren atrae a sus usuarios.

Cómo viaja una invitación

Una invitación se escribe como borrador, y enviarla no cambia nada más que su estado. El propio proceso cronometrado del portal — que se ejecuta cada cinco minutos en cada instancia del portal — lo detecta, calcula los destinatarios y envía a cada uno un enlace con su propio código. Solo se almacena el hash del código, por lo que leer la tabla no da a nadie un enlace funcional.

  1. Borrador — elige quién lo recibe, los puestos que otorga, su caducidad y el correo electrónico por el que se envía.
  2. Listo para enviar — Enviar fue pulsado; el portal lo recoge en pocos minutos.
  3. Enviado — los destinatarios existen y sus enlaces funcionan hasta que expira (30 días después de enviar, a menos que pongas una fecha).
  4. Expirado o cancelado — los enlaces dejan de funcionar.

Quién lo recibe

Una invitación va a un contacto, a una cuenta — a todos los contactos activos que tenga — o a cualquier criterio escrito con la devolución del generador de consultas FetchXML. Los destinatarios se calculan cuando se envía la invitación, con acceso de la persona que la envió, y enviarla de nuevo más tarde llega a quien coincida y no la haya recibido, sin enviar dos correos a nadie. Los contactos sin dirección de correo electrónico se omiten y, por tanto, salvo que la invitación diga lo contrario, son los contactos que ya tienen un inicio de sesión en el portal.

Quien lo recibe queda fijado una vez enviado

Una vez que una invitación sale de Draft, quién la recibe y los roles que otorga no pueden cambiar: los roles se leen cuando alguien acepta, así que cambiarlos cambiaría lo que reciben las personas que ya tienen un enlace. Su fecha de caducidad aún puede cambiarse. Cada destinatario puede recibir un nuevo enlace o ser revocado por sí mismo.

El correo electrónico

Dejado a su aire, el portal envía su propio correo desde su localización (app.email-templates.invitation). Para escribir el tuyo propio, crea una plantilla de contacto o correo global en Dataverse, pon {{invitation-link}} dónde debe ir el enlace y elígelo en la invitación. Una plantilla sin el marcador falla al destinatario en lugar de enviar un correo electrónico sobre el que nadie pueda actuar.

Aceptando

El enlace se abre /Account/Invitation. Alguien sin acceso crea uno allí — la dirección de correo electrónico del contacto invitado, con contraseña o cualquier inicio de sesión externo configurado — incluso cuando el registro está desactivado. Alguien con inicio de sesión inicia sesión y acepta; alguien que inició sesión como otra persona es invitado a cerrar sesión. Seguir un enlace enviado a la dirección cuenta como confirmarlo, por lo que no sigue ningún correo de confirmación. Un código desconocido, usado, revocado, caducado o para otro portal dice lo mismo.

El discurso público

El proceso con tiempo funciona fuera de cualquier solicitud, por lo que lee la dirección desde PowerPortalsPro:PublicUrl la que se accede al portal — requerida, para cada portal. Sus enlaces apuntan ahí, y es la dirección que se comprueba la licencia del portal al decidir qué invitaciones son propias. Configúralo por entorno para que los enlaces de UAT apunten a UAT; en Azure App Service es la PowerPortalsPro__PublicUrl configuración de aplicación, marcada como una configuración de slot de despliegue. Un portal que se ejecuta localhost no envía invitaciones a menos que PowerPortalsPro:Invitations:DevelopmentWebsiteId nombre el registro web actúe como tal.

Conectándolo

InvitationAdmin lista las invitaciones, con Enviar y Cancelar; InvitationForm edita una, con sus destinatarios debajo. Bloquea la página en la comprobación de administrador del portal, como las otras páginas de administración, y asigna al formulario una página propia: los criterios se escriben con el generador de consultas FetchXML, que quiere la sala. Cada cambio se realiza como miembro del personal iniciado sesión, por lo que la seguridad de Dataverse se aplica aquí como en la aplicación basada en modelos.

React Blazor

InvitationAdmin

Reaccionar Blazor

InvitationAdmin Clase

Parámetros

Nombre
Tipo
Default
Descripción
InvitationUrlstring?
Cuando una invitación se edita, como una URL cuyo {0} es su id — por ejemplo 'InvitationAdmin/Invitation/{0}'. Configúralo y Crear y abrir la navegación allí, con nuevo en lugar del ID para uno nuevo; si no se ajusta, abren un panel lateral.
Nombre: InvitationUrl
Tipo: string?
Descripción: Cuando una invitación se edita, como una URL cuyo {0} es su id — por ejemplo 'InvitationAdmin/Invitation/{0}'. Configúralo y Crear y abrir la navegación allí, con nuevo en lugar del ID para uno nuevo; si no se ajusta, abren un panel lateral.

Formulario de invitación

Reaccionar Blazor

InvitationForm Clase

Propiedades

Nombre
Tipo
Default
Descripción
RecordTableRecord?
La invitación está siendo editada.
Nombre: Record
Tipo: TableRecord?
Descripción: La invitación está siendo editada.