Pregunta

Estoy creando un trabajo de temporizador que encuestan una fuente RSS que requiere un nombre de usuario y una contraseña.Me gustaría almacenar las credenciales de inicio de sesión en el servicio de tienda segura.

Creo que he configurado esto con éxito y puedo recuperar las credenciales utilizando el siguiente código:

ISecureStoreProvider provider = SecureStoreProviderFactory.Create();
ISecureStoreServiceContext providerContext = provider as ISecureStoreServiceContext;
SPSite centralAdminSite = GetCentralAdminSite();    // function that gets the ca site
providerContext.Context = SPServiceContext.GetContext(centralAdminSite);

using (SecureStoreCredentialCollection creds = provider.GetCredentials(applicationId))
{
    // code that obtains the username and password omitted
}

El problema es que, cuando pongo este código en un TIMERJOB, recibo un error:

Credentials were not found for the current user within the target application 'XXXXX'. Please set the credentials for the current user.

Supongo que esto se debe a que el TimerJob se está ejecutando como "Cuenta del sistema", donde la aplicación de la consola se ejecuta como "SP_ADMIN" (el usuario que creó y configuró el servicio de tienda segura).

¿Cómo puedo venir esto, así que puedo recuperar las credenciales de la tienda segura, por favor?

¿Debo estar almacenando las credenciales en la tienda segura o es que se exagera?

¡Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

¿Ha intentado configurar las credenciales en la tienda segura para que el usuario ejecute específicamente el trabajo del temporizador?Si va al panel de control,> Herramientas administrativas -> Servicios y encuentre el servicio de Timer de SharePoint, el usuario de la columna 'Iniciar sesión como' debe ser el usuario que configura las credenciales para.

Otros consejos

Mejor camino es configurar el "Tipo de aplicación de destino" como grupo, y definir la cuenta de servicio de Temporizador de SharePoint en el campo Miembros.

De esta manera, los trabajos de temporizador pueden acceder a las credenciales sin la molestia de tener que crear credenciales de tiendas seguras "individuales", las credenciales para aquellas que no están destinadas a definirse de antemano por el administrador.

Licenciado bajo: CC-BY-SA con atribución
scroll top