Reportviewer 'NT AUTHORITY\NETWORK SERVICE' are insufficient for performing this operation. (rsAccessDenied)

  • I'm getting the following error:

    The permissions granted to user 'NT AUTHORITY\NETWORK SERVICE' are insufficient for performing this operation. (rsAccessDenied)

    ...when I try to use a reportviewer control from a web application.

    I've tried to add the group on the report server of NT AUTHORITY\NETWORK SERVICE and have a 'browser' role.

    That didn't work.

    I've tried to use:

    This just gives me an error of:

    The permissions granted to user 'servername\username' are insufficient for performing this operation. (rsAccessDenied)

    ...where the username is the Windows user account for anonymous access

    I've even given 'servername\username' a group on the report server and a 'browser' role, but I stil get the same error as above.

    Any suggestions?

  • Chip,

    Don't know if you got this working yet. If not, a few questions:

    1. Is your web app with ReportViewer control on a different server than SSRS?

    2. What is the IIS version used? IIS5 - Win 2000? IIS6 - Win 2003?

    3. What is the authentication scheme used by the web app (i.e., in web.config)

    If I remember right, across servers, NT AUTHORITY\Network Services translates to

    DOMAIN\MACHINENAME$ (yes, $ at end).

    You might try to give SSRS permissions to that account to see if it works.

    Regards,

    Scott Thornburg

  • Hi Chip,

    I recently worked through the same issue that you are now facing.

    What I did was set the credentials (a valid windows account) in the web page.

    See below:

    Me.ReportViewer1.ServerReport.ReportServerCredentials = New ReportServerCredentials( _

    ConfigurationManager.AppSettings("CSUID"), _

    ConfigurationManager.AppSettings("CSPWD"), _

    ConfigurationManager.AppSettings("CSDomain"))

    The credentials class:

    Imports Microsoft.VisualBasic

    Imports Microsoft.Reporting.WebForms

    Imports System.Net

    Public Class ReportServerCredentials

    Implements IReportServerCredentials

    Private _username As String

    Private _password As String

    Private _domain As String

    Public Sub New(ByVal userName As String, ByVal password As String, ByVal domain As String)

    _username = userName

    _password = password

    _domain = domain

    End Sub

    Public Function GetFormsCredentials(ByRef authCookie As System.Net.Cookie, ByRef userName As String, ByRef password As String, ByRef authority As String) As Boolean Implements Microsoft.Reporting.WebForms.IReportServerCredentials.GetFormsCredentials

    authCookie = Nothing

    userName = Nothing

    password = Nothing

    authority = Nothing

    Return False

    End Function

    Public ReadOnly Property ImpersonationUser() As System.Security.Principal.WindowsIdentity Implements Microsoft.Reporting.WebForms.IReportServerCredentials.ImpersonationUser

    Get

    Return Nothing

    End Get

    End Property

    Public ReadOnly Property NetworkCredentials() As System.Net.ICredentials Implements Microsoft.Reporting.WebForms.IReportServerCredentials.NetworkCredentials

    Get

    Return New NetworkCredential(_username, _password, _domain)

    End Get

    End Property

    End Class

  • Thanks to both of you for the posts!

    I ended up using this certain report as "remote" mode instead of "local" mode in the reportviewer control since it had a parameter, and it turns out my SQL statement was trying to run as dbo.

    I'll try your suggestions as well.

    Thanks!

    Chip

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply