Discussion:
ReportViewer 2.0 Control with Credentials Problem
(too old to reply)
Nate Dogg
2006-02-19 07:29:29 UTC
Permalink
I have developed a web app that uses forms authentication. I wrote it in
asp.net 2.0. My server is running windows 2003 server standard and IIS. I
have also installed on the same machine SQL Server 2005 with Reporting
Services.

From my webapplication, I have a button that the user can click and then I
have the Report Viewer control generate a report. However, I do not know how
to pass the proper credentials to the report server. I would like to pass
one username and password that has permissions to run that report. My code
is follows:

Private Sub saveRptAs(ByVal s_rptType As String)
Dim warnings As Microsoft.Reporting.WebForms.Warning()
Dim streamids As String()
Dim mimeType As String
Dim encoding As String
Dim extension As String

ReportViewer1.ServerReport.ReportServerUrl = New
Uri("http://myserver/reportserver")
ReportViewer1.ServerReport.ReportPath = "/reports/Individual Report"


Dim test As New NetworkCredential("localuser", "password", "domain")

ReportViewer1.ServerReport.ReportServerCredentials = test

Dim rprameter As ReportParameter = New ReportParameter("user_no",
Profile.DTGVariables.SelectedYMNo)
Me.ReportViewer1.ServerReport.SetParameters(New ReportParameter()
{rprameter})

Dim bytes As Byte() = ReportViewer1.ServerReport.Render(s_rptType,
Nothing, mimeType, encoding, extension, streamids, warnings)
Response.Buffer = True
Response.Clear()
Response.ContentType = mimeType
Response.AddHeader("content-disposition", "attachment;
filename=sample." + extension)
Response.BinaryWrite(bytes)
Response.Flush()
Response.End()
End Sub

When I click on the button I get the following message:

Unable to cast object of type 'System.Net.NetworkCredential' to type
'Microsoft.Reporting.WebForms.IReportServerCredentials'.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.

Exception Details: System.InvalidCastException: Unable to cast object of
type 'System.Net.NetworkCredential' to type
'Microsoft.Reporting.WebForms.IReportServerCredentials'.


Can someone help me with the credentials issue? Do I need to change
Reporting Services to use Forms Authentication?

Your help and insight is greatly appreciated.

Thanks

Nate Dogg
Nuno
2006-02-20 15:11:29 UTC
Permalink
You have to create a class that inherits from IReportServerCredentials
interface.

read this post:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=157916&SiteID=1
Post by Nate Dogg
I have developed a web app that uses forms authentication. I wrote it in
asp.net 2.0. My server is running windows 2003 server standard and IIS. I
have also installed on the same machine SQL Server 2005 with Reporting
Services.
From my webapplication, I have a button that the user can click and then I
have the Report Viewer control generate a report. However, I do not know how
to pass the proper credentials to the report server. I would like to pass
one username and password that has permissions to run that report. My code
Private Sub saveRptAs(ByVal s_rptType As String)
Dim warnings As Microsoft.Reporting.WebForms.Warning()
Dim streamids As String()
Dim mimeType As String
Dim encoding As String
Dim extension As String
ReportViewer1.ServerReport.ReportServerUrl = New
Uri("http://myserver/reportserver")
ReportViewer1.ServerReport.ReportPath = "/reports/Individual Report"
Dim test As New NetworkCredential("localuser", "password", "domain")
ReportViewer1.ServerReport.ReportServerCredentials = test
Dim rprameter As ReportParameter = New ReportParameter("user_no",
Profile.DTGVariables.SelectedYMNo)
Me.ReportViewer1.ServerReport.SetParameters(New ReportParameter()
{rprameter})
Dim bytes As Byte() = ReportViewer1.ServerReport.Render(s_rptType,
Nothing, mimeType, encoding, extension, streamids, warnings)
Response.Buffer = True
Response.Clear()
Response.ContentType = mimeType
Response.AddHeader("content-disposition", "attachment;
filename=sample." + extension)
Response.BinaryWrite(bytes)
Response.Flush()
Response.End()
End Sub
Unable to cast object of type 'System.Net.NetworkCredential' to type
'Microsoft.Reporting.WebForms.IReportServerCredentials'.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information about
the error and where it originated in the code.
Exception Details: System.InvalidCastException: Unable to cast object of
type 'System.Net.NetworkCredential' to type
'Microsoft.Reporting.WebForms.IReportServerCredentials'.
Can someone help me with the credentials issue? Do I need to change
Reporting Services to use Forms Authentication?
Your help and insight is greatly appreciated.
Thanks
Nate Dogg
Loading...