Pregunta

Bajo ciertas circunstancias, mi aplicación de escritorio utilizando servicios web de SharePoint termina con DefaultNetworkCredentials tener valores nulos, por lo que la llamada falla. Necesito a continuación, obtener las credenciales de los usuarios, pero no he encontrado una manera straightfoward para hacerlo.

Estoy considerando la implementación de la solución se describe en http: // www. pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html

... Sin embargo, esto todavía va a requerir que yo manejo la contraseña, lo que me gustaría mucho que no lo hago. He buscado, pero no han sido capaces de encontrar un método más directo que solicita al usuario y devuelve un NetworkCredential directamente, sin que tenga que guardar la contraseña?

Gracias,

EDIT: Parece que no voy a encontrar exactamente lo que estoy buscando ... voy a tener que pedir al usuario a mí mismo cuando esto sucede.

Sin embargo, si estoy interpretando algunas de estas respuestas correctamente, puede ser una condición de error para los DefaultNetworkCredentials sean nulos como esta en el primer lugar. Es ese el caso? ¿Hay una manera de forzar a los DefaultNetworkCredentials para poblar, o es realmente un simple caché que acaba de recordar el último dominio / usuario / contraseña utilizada para el URI (ese día? Que la aplicación / sesión?). Objetivo

¿Fue útil?

Solución

No creo que se puede evitar el manejo de ellos por primera vez. Pero, ya un gancho en el Administrador de credenciales para que se almacenan en caché a partir de ese punto en adelante. He aquí un artículo sobre cómo hacer que . Es pesado en p / invocar, pero podría dar a sus usuarios una experiencia más consistente.

Otros consejos

El trabajo sobre la cuestión de fondo, las credenciales nulas y no molesta al usuario la información que ya han entrado.

A menos que usted quiere que ellos sean capaces de iniciar sesión en SharePoint diferente a emabrgo cuenta corriente (una característica útil tal vez).

.NET tiene código para tratar con credenciales, así que ¿por segunda suposición de que al salir a DLL externa y la adición de otra dependencia a su aplicación?

No sé lo suficiente sobre la seguridad del código riesgos que tiene en su entorno, pero yo habría pensado que el almacenamiento de las credenciales objeto en la memoria cliente sólo sería "bastante seguro" para la mayoría de las situaciones.

No sé de algo que se encarga de la contraseña para usted, pero SecureString pueden ser de uso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top