reporting-services - tiene - reporting services pide usuario contraseña
¿Cómo puedo determinar a qué grupos de seguridad AD pertenece el usuario actual dentro de un informe SSRS? (2)
Tengo la necesidad de determinar a qué grupo (s) de seguridad pertenece un usuario dentro de un informe de SQL Server Reporting Services. El acceso al informe estará dirigido por la membresía a uno de dos grupos: ''report_name_summary'' y ''report_name_detail''. Una vez que el usuario está ejecutando el informe, queremos poder utilizar su membresía (o falta de membresía) en el grupo ''report_name_detail'' para determinar si se debe permitir o no un "desglose".
No conozco ninguna forma de salir de la caja para acceder a la membresía del grupo de seguridad de AD del usuario actual, pero estoy abierto a cualquier sugerencia para poder acceder a esta información desde el informe.
En Reporting Services simplemente use:
Public Function IsMemberOfGroup() As Boolean
If System.Threading.Thread.CurrentPrincipal.IsInRole("MyADGroup") Then
Return True
Else
Return False
End If
End Function
como se indica en esta publicación
Nota: Esto funciona una vez que el informe se implementa en el servidor, pero no en el IDE.
Puede agregar código personalizado a un informe. Este enlace tiene algunos ejemplos.
Teóricamente, debería poder escribir un código como este y luego usar el valor de retorno para mostrar / ocultar lo que desea. Sin embargo, puede tener problemas de permisos con este método.
Public Function ShouldReportBeHidden() As Boolean
Dim Principal As New System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent())
If (Principal.IsInRole("MyADGroup")) Then
Return False
Else
Return True
End If
End Function
Alternativamente , puede agregar su informe detallado como un informe integrado de su informe de resumen. Luego, podría usar la funcionalidad de seguridad integrada en SSRS para restringir el acceso a su subinforme.