Estoy muy verde con los servicios web y WCF, y estoy usando la autenticación integrada de Windows. ¿Cómo obtengo el nombre de usuario en la interfaz del servidor? Creo que se supone que debo implementar un Comportamiento personalizado, o tal vez algo con las Sesiones WCF? Cualquier pista sería súper útil.Obtener el nombre de usuario de Windows del lado del servidor WCF
Respuesta
Aquí hay un fragmento de código de servicio que muestra cómo se puede recuperar y utilizar la WindowsIdentity asociado con la persona que llama de un servicio WCF.
Este código asume que está aceptando la mayoría de los valores predeterminados de su configuración. Debería funcionar sin problemas con Named Pipe o Net Net binding.
la p.Demand() determinará si el usuario está en el grupo de Windows especificado por la variable permissionGroup.
private static void DemandManagerPermission()
{
// Verify the use has authority to proceed
string permissionGroup = ConfigurationManager.AppSettings["ManagerPermissionGroup"];
if (string.IsNullOrEmpty(permissionGroup))
throw new FaultException("Group permissions not set for access control.");
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
var p = new PrincipalPermission(ServiceSecurityContext.Current.WindowsIdentity.Name, permissionGroup, true);
p.Demand();
}
¿Has probado WindowsIdentity.GetCurrent();
?
Eso le da a la identidad que se ejecuta el servicio - no la identidad del usuario que llama al servicio – Cocowalla
intente buscar en ServiceSecurityContext.Current.WindowsIdentity
Para obtener el servicio de llamadas de WCF nombre de usuario:
var = callerUserName ServiceSecurityContext.Current.WindowsIdentity.Name;
- 1. Validación de entrada de usuario, del lado del cliente o del lado del servidor? [PHP/JS]
- 2. WCF: manejo de errores del lado del servidor. mejor práctica
- 3. WCF: cómo obtener el IP del servidor o el nombre del servidor
- 4. Línea de comando del lado del servidor
- 5. WCF + Credenciales del usuario
- 6. Método del lado del servidor y del lado del cliente
- 7. Análisis del lado del servidor
- 8. Cómo obtener el nombre de dominio del servidor
- 9. Ruby: del lado del cliente o del lado del servidor?
- 10. Uso del certificado Wcf SSl sobre Tcp sin certificado de cliente (solo del lado del servidor)
- 11. Exploración de archivos del lado del servidor
- 12. Web Charting, lado del servidor o del lado del cliente?
- 13. Comprobación del lado del servidor frente al lado del agente
- 14. Escaneo de virus del lado del servidor
- 15. HTML5 - lado del servidor
- 16. autocompletar aplicación del lado del servidor
- 17. Obtener el nombre del servidor durante la inicialización del servlet
- 18. ¿Cómo obtengo el nombre del usuario actual de Windows en formato de nombre de usuario @ dominio?
- 19. GWT: Obtener constantes en el lado del servidor
- 20. Cómo obtener Url Hash (#) desde el lado del servidor
- 21. Obtener el nombre para mostrar del usuario de WindowsIdentity
- 22. Obtener el nombre de usuario del cliente que se conectó al servidor web
- 23. C# Active Directory: ¿Obtener el nombre de dominio del usuario?
- 24. ¿Cómo se determina el NOMBRE del lado del cliente de un control de servidor?
- 25. WCF nombre de usuario sin certificado
- 26. Git cli: obtener información de usuario del nombre de usuario
- 27. ¿Recuperar el nombre y apellido del usuario actual de Windows?
- 28. librería javascript para el almacenamiento del lado del cliente con la sincronización del lado del servidor
- 29. lado del servidor MVC + lado del cliente MVC
- 30. Paginación: ¿lado del servidor o lado del cliente?
La p.Demand exigirá que 'Thread.CurrentPrincipal' tenga la función especificada Y tenga el mismo nombre de usuario que' ServiceSecurityContext.Current .WindowsIdentity.Name'. – Joe