Showing posts with label credentials. Show all posts
Showing posts with label credentials. Show all posts

Thursday, March 29, 2012

Credentials used to run this report are not stored.

I created a report in SSRS, and deployed it. I have created security where when users run the on demand report, it will prompt them for a username and password. I went to the properties of the report then Execution, and tried to set up report execution snapshot and got an error 'Credentials used to run this report are not stored.' I get the same error if I go to History and try to select any of the options there.

Hello,

In order to create a subscription/snapshot, you have to store credentials to run the report. If you don't store the credentials, when it goes to run unattended, it has no connection information.

Jarret

|||Where do I store these credentials?|||

Hello,

Go to the properties of your report, then click on 'Data Sources' on the left. In here, select 'Credentials stored securely in the report server' and supply a username and password. If you use a Windows account, you have to give the domain as well (domain\user) and check the box for 'Use as Windows credentials when connecting to the data source'. Hit Apply.

Hope this helps.

Jarret

|||That worked....thanks!!

Credentials used to run this report are not stored

Hi all,

When I create a new report subscription in report manager, I got this error

Credentials used to run this report are not stored

any idea?

Thanks,

Jone

Can you go to report properties -> Data Sources and make sure that "Connect Using Credentials stored securely in the report server" is selected and valid user name and password provided?

Thanks,
Sharmila

|||

Thanks for your response.

By the way, which name and password should I input. I tried to using ASPNET as the username (or 'sa' and the password to access sql aerver) but it failed, and gave error message bad user name or password.

Thanks,

jone

|||

For example, if the below is your connection string, you need to enter a user name and password to access the data source.

data source=<ServerName>; initial catalog=<SampleDB>

Thanks,
Sharmila

|||

Thanks, Sharmila.

I use user name = 'sa' and password = 'access' to access my datasource, and I tried to use them in 'Credentials stored securely in the report server', and checked both or first ckeckbox under this selection, and I got

Logon failed. (rsLogonFailed)

  • Logon failure: unknown user name or bad password. (Exception from HRESULT: 0x8007052E)|||

    Jone,

    If you select the 'Credentials stored securely in the report server', you should not check the boxes for 'Use as Windows credentials when connecting to the data source' or 'Impersonate the authenticated user after a connection has been made to the data source'. After entering user name = 'sa' and password = 'access' , press Apply at the bottom and try to view your report.

    If this still doesn't work, you should try to login to the database using user name = 'sa' and password = 'access' through Management Studio to see if that works.

    Hope this helps.

    Jarret

    |||

    Thanks, Jarret.

    According to your suggestion, I configured my datasource and ran my report, and I got error

  • Non-Windows user credentials were supplied for a non-http connection to Analysis Services. The Microsoft SQL Server Analysis Services data extension requires Windows Integrated Security unless connecting via http or https.|||

    Could you use a Windows domain account and it's password? Then, you will need to check the box for 'Use as Windows credentials when connecting to the data source' also.

    Jarret

    |||

    Thank you, Jarret.

    I used my user name an dpassword that I use to login my machine, and checked the 'use as windows credentials when connectingto the data source', and the subscription has been created.

    But I can't find the e-mail extension on the report. How can the e-mail extension or icon be availale on the report?

    BTW, in sql server-->configuration tools--.report service configuration -->email settings,

    I input my e-mail address as the sender's address, and the name of our exchange server name as the 'smpt server' name, or should I input "default virtual smtp server' as the smtp server name?

    Thanks,

    Jone

    |||

    Hi, more question:

    since the application will be used by others, what should I handle the credential issues since I can't use my username and password there?

    Thanks,

    Jone

    |||

    I don't think there is an email extension for Reporting Services, you might be able to find something out there that will add this functionality though. I haven't heard of any, but I haven't looked either.

    I think you will need to leave your exchange server in the SMTP Server name.

    Jarret

    |||

    You have you have the credentials stored in order to create a subscription.

    I just did a test and it seems that the stored credentials are not used when a user runs the report from the browser. So, when your users run the report, you will still see their name in the ExecutionLog table as having executed the report. Also, you can restrict access to the report for specific users as well, just as normal.

    My test was: I set the stored credentials as my account, then had a co-worker run the report. Then, I looked in the ExecutionLog, it showed my co-workers account.

    Hope this helps.

    Jarret

    |||

    Thank you so much, Jarret. You save me days of time

    Jone

    |||

    Glad I could help Jone, can you mark this one as answered so others can view the solution?

    Jarret

    |||No problem!
  • credentials type - service credentials missing

    Hi All,

    On my 64bit itanium cluster, how come when I open up my Reporting Services Configuration Manager and go to the "Database Setup", under "Credentials Type" I am missing the option "Service Credentials"? This is how I have my dev server set up and would like it to be the same.

    This was due to us connecting to the individual node rather than to the cluster when opening up the reporting services configuration manager.

    Credentials trouble, please help

    Hello,
    When I created the datasource for my report, I checkd the save checkbox to
    save the username and password to connect to the database, but invoking the
    report thru URL integration fails and gives an error b/c of credentials. Why
    is that happening if the credentials are saved with the datasource inside the
    report?
    What is the limitation to the number of characters that can be passed in a
    URL string?
    Thank you in advance,
    RichardI had a similiar problem with the report server. I ended up changing
    the credentials to server credentials in both the report properties and
    in the properties of the report once it was on the server. Hope this
    helps.

    Credentials problem or deployment puzzle or permission problem?

    Hi,All:

    I had development a reporting service home page for our intranet . And I deployed this home page at "domain.server1" (for example) and my sql server database and reporting service is at another server "domain.server2"(for example). on the "domain.server1" , the Authentication methods is Integrated windows authentication. and on the "domain.server2" , with the reportingservice server properites and home folder, in the "permissions" tab, I had add the "domain.server1$" as system user role. so I can view my report via my home page and it works fine. If I remove the "domain.server1$" from the reporting service, there could be encountered an error "The permissions granted to user 'domain.server1$' are insufficient for performing this operation".

    I used

    rService.Credentials = System.Net.CredentialCache.DefaultCredentials;

    in my home page to list the reports. I think this must be a problem, so I change this code as

    System.Net.NetworkCredential myCreds = new System.Net.NetworkCredential();
    myCreds.Domain = "domain";
    myCreds.UserName = "UserName";
    myCreds.Password = "Password";
    rService.Credentials = myCreds;

    and add this "UserName" to a local group "group1" on "domain.server2" , and grant this group "group1" to access the reporting service server. It works fine.

    but now , I'm confused how to get the user's information (especially the password infomation , even though encrypted )?

    Does any one can give me some feedbacks?

    T.I.A

    henry

    http://blogs.msdn.com/bimusings/archive/2005/11/18/494436.aspx?CommentPosted=true#commentmessage

    I got the this scenarios a few days ago, after a few day's research.

    I found that we must configurate the webServer as a trusted server so it can pass the credentials to the SSRS.

    Allow a computer to be trusted for delegation

    http://technet2.microsoft.com/WindowsServer/en/library/b207ee9c-a055-43f7-b9be-20599b694a311033.mspx?mfr=true

    in the web applcation , we just set the Report viewer control credential like this:

    rService.Credentials = System.Net.CredentialCache.DefaultCredentials;

    we must configurate the webServer to support the Kerberos Authentication and Delegation

    How to configure IIS to support both the Kerberos protocol and the NTLM protocol for network authentication

    http://support.microsoft.com/kb/215383

    and It works.

    Good luck!

    Henry

    Credentials problem or deployment puzzle or permission problem?

    Hi,All:

    I had development a reporting service home page for our intranet . And I deployed this home page at "domain.server1" (for example) and my sql server database and reporting service is at another server "domain.server2"(for example). on the "domain.server1" , the Authentication methods is Integrated windows authentication. and on the "domain.server2" , with the reportingservice server properites and home folder, in the "permissions" tab, I had add the "domain.server1$" as system user role. so I can view my report via my home page and it works fine. If I remove the "domain.server1$" from the reporting service, there could be encountered an error "The permissions granted to user 'domain.server1$' are insufficient for performing this operation".

    I used

    rService.Credentials = System.Net.CredentialCache.DefaultCredentials;

    in my home page to list the reports. I think this must be a problem, so I change this code as

    System.Net.NetworkCredential myCreds = new System.Net.NetworkCredential();
    myCreds.Domain = "domain";
    myCreds.UserName = "UserName";
    myCreds.Password = "Password";
    rService.Credentials = myCreds;

    and add this "UserName" to a local group "group1" on "domain.server2" , and grant this group "group1" to access the reporting service server. It works fine.

    but now , I'm confused how to get the user's information (especially the password infomation , even though encrypted )?

    Does any one can give me some feedbacks?

    T.I.A

    henry

    http://blogs.msdn.com/bimusings/archive/2005/11/18/494436.aspx?CommentPosted=true#commentmessage

    I got the this scenarios a few days ago, after a few day's research.

    I found that we must configurate the webServer as a trusted server so it can pass the credentials to the SSRS.

    Allow a computer to be trusted for delegation

    http://technet2.microsoft.com/WindowsServer/en/library/b207ee9c-a055-43f7-b9be-20599b694a311033.mspx?mfr=true

    in the web applcation , we just set the Report viewer control credential like this:

    rService.Credentials = System.Net.CredentialCache.DefaultCredentials;

    we must configurate the webServer to support the Kerberos Authentication and Delegation

    How to configure IIS to support both the Kerberos protocol and the NTLM protocol for network authentication

    http://support.microsoft.com/kb/215383

    and It works.

    Good luck!

    Henry

    credentials of the user datasource

    Hi,

    I'd like to programme the execution of a report through the execution property option. However, when I try to do it a message error appears related to credentials of the datasource.

    The present action is impossible to complete, because the credentials of the user datasource needed to execute this report are not stored on report server database.

    I've tried all possible combinations.

    Any idea?

    Thanks.

    Please set user name and password of the user datasource

    following is the sample code to set it.

    Microsoft.Reporting.WebForms.DataSourceCredentials[] crd = new Microsoft.Reporting.WebForms.DataSourceCredentials[1];

    crd[0] = new Microsoft.Reporting.WebForms.DataSourceCredentials();

    crd[0].Name = "DatasourceName";

    crd[0].UserId = User;

    crd[0].Password = Pwd;

    ReportViewer.ServerReport.SetDataSourceCredentials(crd);

    If you are using multiple data sources you need to set credentials for each datasource..

    please set datasource credentials after setting report and parameter of the report to report viewer..

    |||

    By "programme the execution of a report through the execution property option" you don't by any chance mean "I want to set up a snapshot or scheduled report through the Executioin panel of the Properties tab of the Report Manager"?

    If this is what you mean, then the message means exactly what it says: the datasource has to have its credentials stored with it (whether it is a shared datasource or one embedded in the report).

    If the datasource is set up to run with the credentials of the logged-in user, then it can't be queried when there is no logged-in user (such as when you want a snapshot to execute). Doesn't that make sense?

    So... how is the data set up for your report? And with what type(s) of credentials is it accessed?

    >L<

    Credentials not being passed with remote access

    I cannot remotely access SQL Server 2005 with Windows Authentication with a
    specific login (I get the error 18452 "this user is not associated with a
    trusted login.."). I ran a trace with the profiler and it shows that no
    values are being passed for the login/credentials.
    I can login to the server locally just fine with the login.
    Windows Authentication works with the same login work against another SQL
    Server machine.
    What could be specific to the login or the server that would cause the
    credentials not to be passed.
    --
    John Shahan> What could be specific to the login or the server that would cause the
    > credentials not to be passed.
    This could be caused by a firewall issue with domain controller
    communication. I've also seen this problem due to a time sync issue between
    the client and servers.
    Hope this helps.
    Dan Guzman
    SQL Server MVP
    "jp" <jp@.discussions.microsoft.com> wrote in message
    news:4B43E6E3-D0F0-4084-AED0-6D4139DA79CB@.microsoft.com...
    >I cannot remotely access SQL Server 2005 with Windows Authentication with a
    > specific login (I get the error 18452 "this user is not associated with a
    > trusted login.."). I ran a trace with the profiler and it shows that no
    > values are being passed for the login/credentials.
    > I can login to the server locally just fine with the login.
    > Windows Authentication works with the same login work against another SQL
    > Server machine.
    > What could be specific to the login or the server that would cause the
    > credentials not to be passed.
    > --
    > John Shahan|||Dan, thank you for your response. I have seen you post helpful information
    for many people before.
    We looked at the time sync yesterday and it is close.
    The odd thing is that it is specific to one login. Login "johnx" does not
    pass credentials from any machine. My other login "johnz" works from any
    machine. Also, no other users are reporting this problem with their login.
    That being the case, do you still think it could be a firewall issue and if
    so, what would I look for in the firewall configuration?
    And again, to make it more frustrating, "johnx" can use Windows
    Authentication on another SQL Server on the same domain with no problem.
    John Shahan
    "Dan Guzman" wrote:

    > This could be caused by a firewall issue with domain controller
    > communication. I've also seen this problem due to a time sync issue betwe
    en
    > the client and servers.
    > --
    > Hope this helps.
    > Dan Guzman
    > SQL Server MVP
    > "jp" <jp@.discussions.microsoft.com> wrote in message
    > news:4B43E6E3-D0F0-4084-AED0-6D4139DA79CB@.microsoft.com...
    >|||> That being the case, do you still think it could be a firewall issue and
    > if
    > so, what would I look for in the firewall configuration?
    If other users can successfully login with Windows authentication from the
    same machines that fail with "john", then it's probably not a firewall
    issue. Furthermore, since "johnx" can successfully login locally, it
    appears "johnx" is setup correctly in SQL Server.
    The main difference between local and remote access is the communication
    protocol. Local access usually uses LCP but remote access is usually done
    via TCP/IP or Named Pipes (as specified by the cliconfg.exe utility). Named
    pipes requires the Windows account to have the "access this computer from
    the network" right so make sure "johnx" has the right (via group membership)
    if you are using Named Pipes.
    After a successful connection of your working account, you can verify the
    connection protocol with:
    SELECT net_library
    FROM master..sysprocesses
    WHERE spid = @.@.spid
    If you still can't sort this out, try to connect using SSMS and post the
    full error message text here.
    Hope this helps.
    Dan Guzman
    SQL Server MVP
    "jp" <jp@.discussions.microsoft.com> wrote in message
    news:FC3706EE-CE61-47EE-85A4-DEDDA3A633F6@.microsoft.com...[vbcol=seagreen]
    > Dan, thank you for your response. I have seen you post helpful
    > information
    > for many people before.
    > We looked at the time sync yesterday and it is close.
    > The odd thing is that it is specific to one login. Login "johnx" does not
    > pass credentials from any machine. My other login "johnz" works from any
    > machine. Also, no other users are reporting this problem with their
    > login.
    > That being the case, do you still think it could be a firewall issue and
    > if
    > so, what would I look for in the firewall configuration?
    > And again, to make it more frustrating, "johnx" can use Windows
    > Authentication on another SQL Server on the same domain with no problem.
    > --
    > John Shahan
    >
    > "Dan Guzman" wrote:
    >|||Dan, thanks again for your help. I wanted to share what apparently turned
    out to be the solution.
    johnx was set up as a local login on sql server. Removing that login
    allowed windows authentication to work,
    John Shahan
    "Dan Guzman" wrote:

    > If other users can successfully login with Windows authentication from the
    > same machines that fail with "john", then it's probably not a firewall
    > issue. Furthermore, since "johnx" can successfully login locally, it
    > appears "johnx" is setup correctly in SQL Server.
    > The main difference between local and remote access is the communication
    > protocol. Local access usually uses LCP but remote access is usually done
    > via TCP/IP or Named Pipes (as specified by the cliconfg.exe utility). Nam
    ed
    > pipes requires the Windows account to have the "access this computer from
    > the network" right so make sure "johnx" has the right (via group membershi
    p)
    > if you are using Named Pipes.
    > After a successful connection of your working account, you can verify the
    > connection protocol with:
    > SELECT net_library
    > FROM master..sysprocesses
    > WHERE spid = @.@.spid
    > If you still can't sort this out, try to connect using SSMS and post the
    > full error message text here.
    > --
    > Hope this helps.
    > Dan Guzman
    > SQL Server MVP
    > "jp" <jp@.discussions.microsoft.com> wrote in message
    > news:FC3706EE-CE61-47EE-85A4-DEDDA3A633F6@.microsoft.com...
    >|||> johnx was set up as a local login on sql server. Removing that login
    > allowed windows authentication to work,
    I had assumed johnx was a domain user rather than a local Windows account.
    I'm glad you got it working.
    Dan Guzman
    SQL Server MVP
    "jp" <jp@.discussions.microsoft.com> wrote in message
    news:36AE4208-0F21-4B0C-A735-4F9663FC812C@.microsoft.com...[vbcol=seagreen]
    > Dan, thanks again for your help. I wanted to share what apparently turned
    > out to be the solution.
    > johnx was set up as a local login on sql server. Removing that login
    > allowed windows authentication to work,
    > --
    > John Shahan
    >
    > "Dan Guzman" wrote:
    >

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();

    |||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    private void Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = new DataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = new NetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();

    |||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    private void Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = new DataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = new NetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();

    |||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    private void Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = new DataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = new NetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();|||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    privatevoid Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = newDataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = newNetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();

    |||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    private void Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = new DataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = new NetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();

    |||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    private void Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = new DataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = new NetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();|||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    privatevoid Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = newDataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = newNetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Reporting Services?

    I have created several reports in SQL Server 2005 reporting services and I am viewing those reports in my C# application using a report viewer control. I want to pass the credentials for each report through my applications. I do not want to use any web service.

    Is it possible?

    Any help will be appreciated!!!

    TIA

    YOu can use the URL Parameters to pass the username and the password, look in the BOL for more information, the syntax for that is:

    prefix:datasourcename=value

    as the prefix is dsu (for user) or dsp (for password)

    HTH, Jens Suessmeyer.

    http://www.sqlserver2005.de

    |||

    Thanks for your reply Jens!!!

    But I am using a Report Viewer control in my application. How can I pass the username and password in this case?

    |||Hi,
    Hope this could help you

    System.Net.CredentialCache myCache = new System.Net.CredentialCache();
    myCache.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic", new System.Net.NetworkCredential("user", "pass"));

    reportViewer.ShowCredentialPrompts = false;
    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache;
    reportViewer.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;
    reportViewer.ServerReport.ReportServerUrl ="http://localhost/reportserver";
    reportViewer.ServerReport.ReportPath = "/yourReportFolder/" + "yourReportName";
    reportViewer.PromptAreaCollapsed = false;
    reportViewer.RefreshReport();

    |||

    I am trying to use the example code provided for a simialr problem but the line (in VB)

    reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = myCache

    always shows as read only. How do I get round this please?

    |||Hi ,
    I think your using report viewer web control ofr asp.net. I had same problem.
    Its won't work for Microsoft.Reporting.WebForms.ReportViewer.


    But i hope this link could help you..

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=373983&SiteID=1

    If you found the way please post back here.


    Thanks & Best Regards|||

    I am attempting to secure my reports with Windows Authentication, but allow users of my application to access it from the www and supply credentials through my app. My app is a .Net 2.0 Windows SmartClient, and I am using the ReportViewer control.

    I tried the following suggestion:

    reportViewer1.ServerReport.ReportServerUrl = new Uri(_txtServer.Text);

    reportViewer1.ServerReport.ReportPath = _listBox.Items[_listBox.SelectedIndex].ToString();

    reportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote;

    CredentialCache cc = new CredentialCache();

    cc.Add(new Uri("http://localhost/ReportServer/ReportService.asmx"), "Basic",

    new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text));

    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = cc;

    reportViewer1.ShowCredentialPrompts = false;

    reportViewer1.RefreshReport();

    ...But I still get "The request failed with HTTP status 401: Access Denied." I am able to authenticate with the web service directly when requesting a list of available reports like this:

    ReportingService rService = new ReportingService();

    rService.Credentials

    = new NetworkCredential(_txtUsername.Text, _txtPassword.Text, _txtDomain.Text);

    CatalogItem[] catalogItems;

    catalogItems = rService.ListChildren("/", true);

    Why can I pass windows credentials to the web service directly, but not through the reportViewer call to reporting services? Any help would be very much appreciated!

    |||

    Hi Glenn,

    You might have got the solution for your problem, If not and/or for other developers who might visit this blog, please find the solution at following link. Actually you can get it work by setting ImpersonationUser instead of NetworkCredentials property.

    http://blogs.msdn.com/bimusings/archive/2005/11/05/489423.aspx

    |||

    You can refer following link.

    http://msdn2.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials(VS.80).aspx

    |||

    Hi, you can try this, might help.

    I pass the datasource credential through ReportViewer. It is the acutal database login credential instead of a net work credential. So in my application, which login user has nothing to do with Windows

    network login user, I am using my application's user id and password to connect to datasource.

    By doing this way, I can view a report using diffirent user id/password as long as they exist in the actual database.

    It works for me.

    private void Form1_Load(object sender, EventArgs e)

    {

    .............................

    Microsoft.Reporting.WinForms.DataSourceCredentials myCredential = new Microsoft.Reporting.WinForms.DataSourceCredentials();

    myCredential.UserId = "myuserid";

    myCredential.Password = "mypassword";

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    DataSourceCredentials[] myCredentials=null;

    if (reportdatasourcecollection.Count > 0)

    {

    myCredentials = new DataSourceCredentials[reportdatasourcecollection.Count];

    }

    for (int iIndex = 0; iIndex < reportdatasourcecollection.Count; iIndex++)

    {

    ReportDataSourceInfo datasourceinfo = reportdatasourcecollection[iIndex];

    myCredential.Name = datasourceinfo.Name;

    myCredentials[iIndex] = myCredential;

    }

    this.reportViewer1.ServerReport.SetDataSourceCredentials( myCredentials );

    ...............................

    }

    |||

    Hi,

    I am facing the same problem.

    I used ReportDataSourceInfo then it gives error that DataSource doesnt support it. Error of rsdatasource

    So what should be the Connection Methods in Shared DataSource?

    Nilesh

    |||

    Me too there's an error here.

    ReportDataSourceInfoCollection reportdatasourcecollection = this.reportViewer1.ServerReport.GetDataSources();

    any thoughts please?

    thanks.

    |||

    Ishwar,

    Thanks for the link. That is awesome. I got it working using the following code.

    ServerReport.ReportServerCredentials.NetworkCredentials

    = new NetworkCredential(properties.Username, properties.Password, properties.Domain);

    Credentials in Data Sources are getting locked out of SQL

    Weird one this....

    Created a report. Set up a new datasource. Using credentials securely stored in server. Set up a local user on the SQL Server specifically to reference through this datasource.

    Go to reportserver, run the report, and it runs fine. Run it a couple more times, runs fine. Then, all of a sudden, it fails, with the error message

  • The referenced account is currently locked out and may not be logged on to. (Exception from HRESULT: 0x80070775)

    This is very strange. I check the account on SQL, and it's still enabled. As it's not a domain account, it hasn't been disabled on the domain. I'm not even familiar with the phrase 'locked out'. After a bit of checking I find out about maxInvalidPasswordAttempts, whereby ASP 'locks out' accounts after 'n' wrong password attempts.

    Firstly, I'm not entering the password wrong. It's correctly entered, and stored in the report server.

    Secondly, where the heck does RS get off locking out accounts without my permission?

    I have no idea how to unlock these accounts.

    If I go ahead and create another account on the SQL, exactly the same thing happens. I can reproduce this at will. It works the first couple of times, then bang, 'locked out' again.

    Anyone got any ideas on how to modify this behavoir?I am getting the same error, all of a sudden, does anyone have a clue how to fix this?|||I am having the same problem. Does anyone know if this is a SP2 problem? Please help!

    |||Hi
    How did you create a user to access the database and this user is not a domain user? If this user is not a sql login user then the OS will lock ou the user and thus the dB lockout. If the user is a non domain user then the OS is trying netuse the account and this will definately lock it out.

    gatharia|||

    |||

    I've solved part of my troubles. I had set up a shared schedule and accidentally was using the default recurrance pattern to start every 10 minutes. This can happen very easily, as when you go to test something you might want to run it once. So... you create a new shared schedule (so you don't end up running everything on your production shared schedule). I don't know why the default is set to this recurrance pattern instead of once. Anyway... I was having the same problem as Sam Loud, but it was not caused by what I was currently doing. It was caused by this recurring "thing" that was running with the wrong password.

    Another "Thing" that caused this problem is when I tried to use shared data sources. As far as I can tell, you cannot use shared data sources when trying to use subscriptions to fileshare. I think this is a bug with reportserver. The first time it runs, it will run successfully. The second time it runs, you will get the RSLogonFailed. I don't know any way around this problem other than to just not use shared data sources.

    The other thing that has caused me problems is that when I modify a report and deploy it, make sure not to overwrite the datasource (note: this is the default setting in IIS). If you overwrite the datasource, then the userid and password that you set up on the datasource on the server gets wiped out and everything bombs out on logon and again you have a lockout situation.

    I am still having some lockouts and still working on this problem. If anyone else can let me know what their experiences are that would be very helpful. I am using subscriptions to fileshare with about 200 reports running on various schedules. Thanks!

  • Credentials in Data Sources are getting locked out of SQL

    Weird one this....

    Created a report. Set up a new datasource. Using credentials securely stored in server. Set up a local user on the SQL Server specifically to reference through this datasource.

    Go to reportserver, run the report, and it runs fine. Run it a couple more times, runs fine. Then, all of a sudden, it fails, with the error message

  • The referenced account is currently locked out and may not be logged on to. (Exception from HRESULT: 0x80070775) This is very strange. I check the account on SQL, and it's still enabled. As it's not a domain account, it hasn't been disabled on the domain. I'm not even familiar with the phrase 'locked out'. After a bit of checking I find out about maxInvalidPasswordAttempts, whereby ASP 'locks out' accounts after 'n' wrong password attempts.

    Firstly, I'm not entering the password wrong. It's correctly entered, and stored in the report server.

    Secondly, where the heck does RS get off locking out accounts without my permission?

    I have no idea how to unlock these accounts.

    If I go ahead and create another account on the SQL, exactly the same thing happens. I can reproduce this at will. It works the first couple of times, then bang, 'locked out' again.

    Anyone got any ideas on how to modify this behavoir?
    I am getting the same error, all of a sudden, does anyone have a clue how to fix this?|||I am having the same problem. Does anyone know if this is a SP2 problem? Please help!|||Hi
    How did you create a user to access the database and this user is not a domain user? If this user is not a sql login user then the OS will lock ou the user and thus the dB lockout. If the user is a non domain user then the OS is trying netuse the account and this will definately lock it out.

    gatharia
    |||

    I've solved part of my troubles. I had set up a shared schedule and accidentally was using the default recurrance pattern to start every 10 minutes. This can happen very easily, as when you go to test something you might want to run it once. So... you create a new shared schedule (so you don't end up running everything on your production shared schedule). I don't know why the default is set to this recurrance pattern instead of once. Anyway... I was having the same problem as Sam Loud, but it was not caused by what I was currently doing. It was caused by this recurring "thing" that was running with the wrong password.

    Another "Thing" that caused this problem is when I tried to use shared data sources. As far as I can tell, you cannot use shared data sources when trying to use subscriptions to fileshare. I think this is a bug with reportserver. The first time it runs, it will run successfully. The second time it runs, you will get the RSLogonFailed. I don't know any way around this problem other than to just not use shared data sources.

    The other thing that has caused me problems is that when I modify a report and deploy it, make sure not to overwrite the datasource (note: this is the default setting in IIS). If you overwrite the datasource, then the userid and password that you set up on the datasource on the server gets wiped out and everything bombs out on logon and again you have a lockout situation.

    I am still having some lockouts and still working on this problem. If anyone else can let me know what their experiences are that would be very helpful. I am using subscriptions to fileshare with about 200 reports running on various schedules. Thanks!

    |||

    The final (and most difficult to resolve) problem that was causing the "logon Failed" and then account lockout problem(s) was related to the windows account that expired (it was set up to expire in 90 days). Since I used this userid when setting up my report subscriptions, all of my subscriptions failed with invalid login and then the account was locked out. When the account userid was reactivated in WINDOWS with the same password, still all of the subscriptions failed on login. This was very frustrating because the main report services account was getting locked every day and nobody could get to the report server and all the report jobs were failing. I tried going into each report subscription and retyping the userid and password (which were valid), but I still got the invalid login. After 3 weeks of frustration and trying different things, I have discovered that what you have to do is 1) go in to the subscription general screen and change the userid and password to something invalid and totally different 2) go out of the subscription general screen (to save your changes) and 3) go back into the subscription general screen and re-type the correct userid and password. This resolved all of my login and lockout problems with the subscriptions and writing to datashare. I hope that this helps anyone else out there who might be struggling with this same issue/problem with reportserver and subscriptions. It is obviously a bug.

  • Credentials in Data Sources are getting locked out of SQL

    Weird one this....

    Created a report. Set up a new datasource. Using credentials securely stored in server. Set up a local user on the SQL Server specifically to reference through this datasource.

    Go to reportserver, run the report, and it runs fine. Run it a couple more times, runs fine. Then, all of a sudden, it fails, with the error message

  • The referenced account is currently locked out and may not be logged on to. (Exception from HRESULT: 0x80070775) This is very strange. I check the account on SQL, and it's still enabled. As it's not a domain account, it hasn't been disabled on the domain. I'm not even familiar with the phrase 'locked out'. After a bit of checking I find out about maxInvalidPasswordAttempts, whereby ASP 'locks out' accounts after 'n' wrong password attempts.

    Firstly, I'm not entering the password wrong. It's correctly entered, and stored in the report server.

    Secondly, where the heck does RS get off locking out accounts without my permission?

    I have no idea how to unlock these accounts.

    If I go ahead and create another account on the SQL, exactly the same thing happens. I can reproduce this at will. It works the first couple of times, then bang, 'locked out' again.

    Anyone got any ideas on how to modify this behavoir?
    I am getting the same error, all of a sudden, does anyone have a clue how to fix this?|||I am having the same problem. Does anyone know if this is a SP2 problem? Please help!|||Hi
    How did you create a user to access the database and this user is not a domain user? If this user is not a sql login user then the OS will lock ou the user and thus the dB lockout. If the user is a non domain user then the OS is trying netuse the account and this will definately lock it out.

    gatharia
    |||

    I've solved part of my troubles. I had set up a shared schedule and accidentally was using the default recurrance pattern to start every 10 minutes. This can happen very easily, as when you go to test something you might want to run it once. So... you create a new shared schedule (so you don't end up running everything on your production shared schedule). I don't know why the default is set to this recurrance pattern instead of once. Anyway... I was having the same problem as Sam Loud, but it was not caused by what I was currently doing. It was caused by this recurring "thing" that was running with the wrong password.

    Another "Thing" that caused this problem is when I tried to use shared data sources. As far as I can tell, you cannot use shared data sources when trying to use subscriptions to fileshare. I think this is a bug with reportserver. The first time it runs, it will run successfully. The second time it runs, you will get the RSLogonFailed. I don't know any way around this problem other than to just not use shared data sources.

    The other thing that has caused me problems is that when I modify a report and deploy it, make sure not to overwrite the datasource (note: this is the default setting in IIS). If you overwrite the datasource, then the userid and password that you set up on the datasource on the server gets wiped out and everything bombs out on logon and again you have a lockout situation.

    I am still having some lockouts and still working on this problem. If anyone else can let me know what their experiences are that would be very helpful. I am using subscriptions to fileshare with about 200 reports running on various schedules. Thanks!

    |||

    The final (and most difficult to resolve) problem that was causing the "logon Failed" and then account lockout problem(s) was related to the windows account that expired (it was set up to expire in 90 days). Since I used this userid when setting up my report subscriptions, all of my subscriptions failed with invalid login and then the account was locked out. When the account userid was reactivated in WINDOWS with the same password, still all of the subscriptions failed on login. This was very frustrating because the main report services account was getting locked every day and nobody could get to the report server and all the report jobs were failing. I tried going into each report subscription and retyping the userid and password (which were valid), but I still got the invalid login. After 3 weeks of frustration and trying different things, I have discovered that what you have to do is 1) go in to the subscription general screen and change the userid and password to something invalid and totally different 2) go out of the subscription general screen (to save your changes) and 3) go back into the subscription general screen and re-type the correct userid and password. This resolved all of my login and lockout problems with the subscriptions and writing to datashare. I hope that this helps anyone else out there who might be struggling with this same issue/problem with reportserver and subscriptions. It is obviously a bug.

  • Credentials in Data Sources are getting locked out of SQL

    Weird one this....

    Created a report. Set up a new datasource. Using credentials securely stored in server. Set up a local user on the SQL Server specifically to reference through this datasource.

    Go to reportserver, run the report, and it runs fine. Run it a couple more times, runs fine. Then, all of a sudden, it fails, with the error message

  • The referenced account is currently locked out and may not be logged on to. (Exception from HRESULT: 0x80070775) This is very strange. I check the account on SQL, and it's still enabled. As it's not a domain account, it hasn't been disabled on the domain. I'm not even familiar with the phrase 'locked out'. After a bit of checking I find out about maxInvalidPasswordAttempts, whereby ASP 'locks out' accounts after 'n' wrong password attempts.

    Firstly, I'm not entering the password wrong. It's correctly entered, and stored in the report server.

    Secondly, where the heck does RS get off locking out accounts without my permission?

    I have no idea how to unlock these accounts.

    If I go ahead and create another account on the SQL, exactly the same thing happens. I can reproduce this at will. It works the first couple of times, then bang, 'locked out' again.

    Anyone got any ideas on how to modify this behavoir?
    I am getting the same error, all of a sudden, does anyone have a clue how to fix this?|||I am having the same problem. Does anyone know if this is a SP2 problem? Please help!|||Hi
    How did you create a user to access the database and this user is not a domain user? If this user is not a sql login user then the OS will lock ou the user and thus the dB lockout. If the user is a non domain user then the OS is trying netuse the account and this will definately lock it out.

    gatharia
    |||

    I've solved part of my troubles. I had set up a shared schedule and accidentally was using the default recurrance pattern to start every 10 minutes. This can happen very easily, as when you go to test something you might want to run it once. So... you create a new shared schedule (so you don't end up running everything on your production shared schedule). I don't know why the default is set to this recurrance pattern instead of once. Anyway... I was having the same problem as Sam Loud, but it was not caused by what I was currently doing. It was caused by this recurring "thing" that was running with the wrong password.

    Another "Thing" that caused this problem is when I tried to use shared data sources. As far as I can tell, you cannot use shared data sources when trying to use subscriptions to fileshare. I think this is a bug with reportserver. The first time it runs, it will run successfully. The second time it runs, you will get the RSLogonFailed. I don't know any way around this problem other than to just not use shared data sources.

    The other thing that has caused me problems is that when I modify a report and deploy it, make sure not to overwrite the datasource (note: this is the default setting in IIS). If you overwrite the datasource, then the userid and password that you set up on the datasource on the server gets wiped out and everything bombs out on logon and again you have a lockout situation.

    I am still having some lockouts and still working on this problem. If anyone else can let me know what their experiences are that would be very helpful. I am using subscriptions to fileshare with about 200 reports running on various schedules. Thanks!

    |||

    The final (and most difficult to resolve) problem that was causing the "logon Failed" and then account lockout problem(s) was related to the windows account that expired (it was set up to expire in 90 days). Since I used this userid when setting up my report subscriptions, all of my subscriptions failed with invalid login and then the account was locked out. When the account userid was reactivated in WINDOWS with the same password, still all of the subscriptions failed on login. This was very frustrating because the main report services account was getting locked every day and nobody could get to the report server and all the report jobs were failing. I tried going into each report subscription and retyping the userid and password (which were valid), but I still got the invalid login. After 3 weeks of frustration and trying different things, I have discovered that what you have to do is 1) go in to the subscription general screen and change the userid and password to something invalid and totally different 2) go out of the subscription general screen (to save your changes) and 3) go back into the subscription general screen and re-type the correct userid and password. This resolved all of my login and lockout problems with the subscriptions and writing to datashare. I hope that this helps anyone else out there who might be struggling with this same issue/problem with reportserver and subscriptions. It is obviously a bug.

  •