c# security passwordvault

c# - ¿Cómo acceder a las credenciales almacenadas(PasswordVault?) En Win7 y Win8?



security (3)

Cómo: Agregar o quitar referencias mediante el Administrador de referencias dice:

En los proyectos de escritorio, la pestaña Núcleo no aparece de forma predeterminada. Puede agregar Windows Runtime abriendo el menú contextual para el nodo del proyecto, eligiendo Descargar proyecto , agregando el siguiente fragmento y reabriendo el proyecto (en el nodo del proyecto, elija Volver a cargar el proyecto ). Cuando invoca el cuadro de diálogo Administrador de referencia , aparece la pestaña Núcleo.

<PropertyGroup> <TargetPlatformVersion>8.0</TargetPlatformVersion> </PropertyGroup>

Asegúrese de marcar el cuadro de Windows en esta pestaña. Entonces debería poder usar elementos WinRT.

Acabo de descubrir que Win8 tiene una sección en el Panel de control llamada Cuentas de usuario y Familia de forma segura con el Administrador de credenciales . Me gustaría acceder a las credenciales almacenadas allí (no para recuperar las contraseñas, sino para usarlas como tokens para iniciar sesión). Entonces, básicamente, me gustaría tener un paseo en el software ya instalado.

Lo más cercano a una solución ha sido sugerido en esta discusión y no es tan cercano.

  1. ¿Dónde encuentro el ensamblado para Windows.Security.Credentials.PasswordVault ? Estuve buscando en Google durante dos horas, pero solo recibo información sobre el desarrollo de aplicaciones, mientras que apuntaré al escritorio.

  2. ¿Hay alguna forma de resolver el acceso a las credenciales almacenadas previamente tanto para Win7 como para Win8? Me temo un poco que la instalación de la bóveda se haya remodelado drásticamente en Win8, lo que hace que sea imposible apuntar a ambas plataformas a la vez.


Puede usar el paquete de administración de credenciales empaquetado . Es un proyecto de código abierto. Lo revisé en Windows 7 y funciona bien.

Para guardar sus datos, use el siguiente código:

Credential saved = new Credential("username", "password", "MyApp", CredentialType.Generic); saved.PersistanceType = PersistanceType.LocalComputer; saved.Save();

Y para cargar su uso de datos:

Credential credential = new Credential { Target = "MyApp", Type = CredentialType.Generic }; credential.Load();


Me encontré con el mismo problema y descubrí que no hay una respuesta simple en ninguna parte.

Esto es lo que encontré:

  1. TargetPlatformVersion descargar el proyecto y agregar TargetPlatformVersion como se menciona arriba.
  2. Agregue la referencia: C:/Program Files (x86)/Windows Kits/8.1/References/CommonConfiguration/Neutral/Annotated/Windows.winmd
  3. También agregue la referencia: C:/Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETCore/v4.5/System.Runtime.WindowsRuntime.dll