SSRS Sql Server Reporting Server Custom Security 2019-Ausnahme in Windows Server 2019

SSRS Sql Server Reporting Server Custom Security 2019-Ausnahme in Windows Server 2019

Ich habe ein Problem im Hinblick auf die benutzerdefinierte Sicherheitsausnahme von SSRS (SQL Server Reporting Server) 2019 in Windows Server 2019.

Der SSRS-Bericht funktioniert aus dem WinForms-VB.net-Code in früheren Versionen von SQL Server (2016, 2014 und 2012) einwandfrei, jedoch nicht in 2019.

Ausführen eines Berichts mit dem Vb.net Winforms-Quellcode und Senden einer Webanforderung an den SSRS-Server mit den erforderlichen Details wie Server-URL, Benutzername, Kennwort, DB-Name usw., mit der Antwort über WebResponse. Ein Authentifizierungscookie für den Benutzer muss abgerufen werden.

Es tritt ein Fehler auf, weil sqlAuthCookie null ist. Außerdem tritt ein Fehler auf, weil die benutzerdefinierte Sicherheitsausnahme nicht aktiviert ist.

Für jede Lösung/Hilfe wäre ich sehr dankbar

Anbei der Codeausschnitt, der von vb.net gesendet wird und eine Antwort vom SSRS-Server erhält.

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;
       }

verwandte Informationen