Tengo un problema con respecto a la excepción de seguridad personalizada SSRS (Sql Server Reporting Server) 2019 en Windows Server 2019.
El informe SSRS funciona bien desde el código winforms vb.net en la versión anterior de SQL Server (2016, 2014 y 2012), pero no en 2019.
Ejecutar el informe usando el código fuente de Vb.net Winforms y enviar WebRequest al servidor SSRS con los detalles necesarios como la URL del servidor, nombre de usuario, contraseña, nombre de base de datos, etc., con respuesta usando webResponse, es necesario obtener una cookie de autenticación para el usuario.
Obtuve un error porque sqlAuthCookie es nulo y también obtuve un error porque la excepción de seguridad personalizada no está habilitada
Cualquier solución/ayuda será muy apreciada.
Adjunto el fragmento de código que se envía desde vb.net y se obtiene respuesta del servidor SSRS.
VB.NET Code
Protected Overrides Function GetWebResponse(ByVal request As WebRequest) As WebResponse
Dim response As WebResponse = MyBase.GetWebResponse(request)
Dim cookieName As String = response.Headers("RSAuthenticationHeader")
' If the response contains an auth header, store the cookie
If Not (cookieName Is Nothing) Then
Dim webResponse As HttpWebResponse = CType(response, HttpWebResponse)
Dim authCookie As Cookie = webResponse.Cookies(cookieName)
' If the auth cookie is null, throw an exception
If authCookie Is Nothing Then
Throw New Exception("Unable to generate report - the Reporting Services Custom Security Extension is expected to be enabled in XB")
End If
' otherwise save it for this request
Me.AuthCookie = authCookie
' and send it to the client
End If
Return response
End Function
//adding new GetUserInfo method for IAuthenticationExtension2
public void GetUserInfo(IRSRequestContext requestContext, out IIdentity userIdentity, out IntPtr userId)
{
userIdentity = null;
if (requestContext.User != null)
{
userIdentity = requestContext.User;
}
// initialize a pointer to the current user id to zero
userId = IntPtr.Zero;
}