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