Windows Server 2019의 SSRS(Sql Server Reporting Server) 2019 사용자 지정 보안 예외와 관련된 문제에 직면했습니다.
SSRS 보고서는 이전 버전의 SQL Server(2016, 2014 및 2012)의 winforms vb.net 코드에서 제대로 작동하지만 2019에서는 작동하지 않습니다.
Vb.net Winforms 소스 코드를 사용하여 보고서를 실행하고 서버 URL, 사용자 이름, 비밀번호, DBName 등과 같은 필수 세부 정보가 포함된 WebRequest를 SSRS 서버로 보내고 webResponse를 사용하여 다시 응답하면 사용자에 대한 인증 쿠키를 가져와야 합니다.
sqlAuthCookie가 null이므로 오류가 발생하고 사용자 지정 보안 예외가 활성화되지 않아 오류가 발생합니다.
어떤 솔루션/도움이라도 주시면 감사하겠습니다.
vb.net에서 전송하고 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;
}