jay-are
asked on
ReportViewer 500 - Internal server error.
Hello
I have setup a reportviewer on a asp.net webform. It worked fine before I tried using IReportServerCredentials, it just prompted me for a username/password. Now after implementing the credentials I keep getting a 500 error. What am I doing wrong?
I have setup a reportviewer on a asp.net webform. It worked fine before I tried using IReportServerCredentials, it just prompted me for a username/password. Now after implementing the credentials I keep getting a 500 error. What am I doing wrong?
Imports System.Data
Imports System.Web
Imports System.Web.UI
Imports Microsoft.Reporting.Webforms
Imports System
Imports System.Net
Imports System.Configuration
Imports System.Collections
Imports System.Web.Security
Imports System.Security.Principal
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Public Class GM
Inherits System.Web.UI.Page
Friend WithEvents SqlConnection As System.Data.SqlClient.SqlConnection
Friend WithEvents SqlCommand As System.Data.SqlClient.SqlCommand
Public strclientid As String = "https://www.mysite.com/ReportServer/Pages/ReportViewer.aspx?/" & HttpContext.Current.Request.Cookies("clientid").Value & "/"
Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ReportViewer1.ServerReport.ReportServerUrl = New System.Uri("https://www.mysite.com/ReportServer/Pages/ReportViewer.aspx?/")
ReportViewer1.ServerReport.ReportPath = HttpContext.Current.Request.Cookies("clientid").Value & "/execrecap&rs:Command=Render"
ReportViewer1.ShowCredentialPrompts = False
ReportViewer1.ServerReport.ReportServerCredentials = New MyReportServerCredentials()
If Not Page.IsPostBack Then
Dim Menu1 As Menu
Menu1 = Me.Menu1
Dim value As MenuItemBindingCollection
value = Menu1.DataBindings
Me.Page.DataBind()
'menu setup here
End If
End Sub
End Class
Public NotInheritable Class MyReportServerCredentials
Implements IReportServerCredentials
Public ReadOnly Property ImpersonationUser() As WindowsIdentity _
Implements IReportServerCredentials.ImpersonationUser
Get
'Use the default windows user. Credentials will be
'provided by the NetworkCredentials property.
Return Nothing
End Get
End Property
Public ReadOnly Property NetworkCredentials() As ICredentials _
Implements IReportServerCredentials.NetworkCredentials
Get
'Read the user information from the web.config file.
'By reading the information on demand instead of storing
'it, the credentials will not be stored in session,
'reducing the vulnerable surface area to the web.config
'file, which can be secured with an ACL.
'User name
Dim userName As String = _
ConfigurationManager.AppSettings("MyReportViewerUser")
If (String.IsNullOrEmpty(userName)) Then
Throw New Exception("Missing user name from web.config file")
End If
'Password
Dim password As String = _
ConfigurationManager.AppSettings("MyReportViewerPassword")
If (String.IsNullOrEmpty(password)) Then
Throw New Exception("Missing password from web.config file")
End If
'Domain
Dim domain As String = _
ConfigurationManager.AppSettings("MyReportViewerDomain")
If (String.IsNullOrEmpty(domain)) Then
Throw New Exception("Missing domain from web.config file")
End If
Return New NetworkCredential(userName, password, domain)
End Get
End Property
Public Function GetFormsCredentials(ByRef authCookie As Cookie, _
ByRef userName As String, _
ByRef password As String, _
ByRef authority As String) _
As Boolean _
Implements IReportServerCredentials.GetFormsCredentials
authCookie = Nothing
userName = Nothing
password = Nothing
authority = Nothing
'Not using form credentials
Return False
End Function
End Class
Set the debug=true and disable the customerror pages in the web.config file to see where the problem is.
ASKER
Yeah debug is set to true and customErrors mode = off. Not sure why I'm not seeing an actual error.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I've got that exact setup now. Ok so I had to go into the appsettings in IIS for that specific program and change it from version 3.5 back to "classic" or 2.0 to get the page to even load. Now it loads fine but I don't get a reportviewer. Just a blank iframe...