Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Visual Studio 2005 / ASP.NET / Crystal Reports / Access Database / Logon Failed

Posted on 2006-06-27
9
Medium Priority
?
3,712 Views
Last Modified: 2012-06-21
I created a ASP.NET Web site using Visual Studio 2005.  The site contains a simple crystal report linked to an Access database.  The report pulls up fine on my local development PC but when I deploy it to the Web server, I get a 'Logon Failed' message.  The Access database is NOT password protected.  What do I need to add to my code-behind to get this to work?  So far, I just have the following.  The name of my report is CrystalReport1.rpt.  Thanks for your help!

__________________________________________

Partial Class _Default
    Inherits System.Web.UI.Page


End Class
0
Comment
Question by:drees727
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
9 Comments
 

Expert Comment

by:DoradoITTeam
ID: 16994743
May be the next code can help you:
It is necessary to add a user and a password although exist not.
For example:
This is a list of reports

Select Case Me.ListBoxReportes.SelectedItem.Value
                    Case "Date"
                        DateApplicantReport.SetDatabaseLogon("USER", "PASSWORD")
                        DateApplicantReport.SetDataSource(Me.DsAdmin.Tables("Applicants"))
                        ViewReports.ReportSource = Me.DateApplicantReport
                        Printing(DateApplicantReport)
End Select
Catch err as Exception
          "Error Message"


0
 
LVL 25

Expert Comment

by:dstanley9
ID: 16995518
Whare is the access file located?  If it;s on a network share, you'll ned to use impersonation and possibly delegation in order to access the Access file - no pun intended:).

Add <identity impersonate="true"/> to web.config as a start.
0
 

Author Comment

by:drees727
ID: 16995623
The Access db is located on a network share.  I added <identity impersonate="true"/> and now I'm getting a 'Load report failed' message.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 25

Expert Comment

by:dstanley9
ID: 16995846
The bottom line is probably that the user that the web app is running as does not have access to te network share.  You have several  options:

1) Impersonate a domain account by using
<identity impersonate="true" userName="{domain\username}" password="{password}"  />
in web.config

2) Do not use identity impersonate=true and give the computer account access to the database file

3) Use delegation by adding
<identity impersonate="true" />
to web.config and set up the web server to be trusted for delegation in Active Directory

4) Put the access file on the web server
0
 

Author Comment

by:drees727
ID: 17003415
With the Access file on the Web server, I get the message:

The report you requested requires further information.
--------------------------------------------------------------------------------
Server name:    \\servername\db.mdb
Database name:    \\servername\db.mdb
User name:    limitedPermissionAccount
Password:    
 Use Integrated Security  

I am able to connect the the same database and display information via an ASP.NET gridview.  It seems to be just when I try to incorporate a crystal report that I get the login prompt.

I've tried several variations on the following code-behind and still get the login prompt.  The code seems to be more geared to SQL Server and I'm using Access.
___________________________________________

Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared

Partial Class _Default
    Inherits System.Web.UI.Page

        Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
        myConnectionInfo.DatabaseName = "db"
        myConnectionInfo.UserID = "USER"
        myConnectionInfo.Password = "PASSWORD"
        myConnectionInfo.ServerName = "servername"
        Dim reportPath As String = Server.MapPath("CrystalReport1.rpt")
        myCrystalReportViewer.ReportSource = reportPath
        SetDBLogonForReport(myConnectionInfo)

    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        ConfigureCrystalReports()

    End Sub

    Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
        Dim myTableLogOnInfos As TableLogOnInfos = myCrystalReportViewer.LogOnInfo
        For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
            myTableLogOnInfo.ConnectionInfo = myConnectionInfo

        Next
    End Sub
End Class
0
 
LVL 25

Accepted Solution

by:
dstanley9 earned 500 total points
ID: 17003502
Sorry, I don't know much about Crystal, but I found the following at http://support.businessobjects.com/library/kbase/articles/c2010371.asp:

• If you are reporting off an Access database, then
specify either the 'ServerName' or 'DatabaseName'
to the 'ConnectionInfo' Object depending on
how you are connecting to Access.

For example, if you are connecting to Access
through ODBC, then set the 'DatabaseName' for the
'ConnectionInfo' object as follows:

With crConnectionInfo
.DatabaseName = "C:\mydatabase\mydata.mdb"
End With

If you are connecting to Access through OLE DB,
then set set the 'ServerName':

With crConnectionInfo
.ServerName = "C:\mydatabase\mydata.mdb"
End With

It is not possible to report of a secured Access
database using a native connection. See knowledge
base article C2010460 for more information.
0
 

Author Comment

by:drees727
ID: 17044626
I'm connecting to Access through OLE DB and I've modified my code as follows.  Now when I pull up the page, I get an 'Access is Denied' message when it hits
crReport.Load("\\Webserver\myfolder\CrystalReport.rpt")

I AM able to successfully view a report in the same folder that is connected to Oracle.  

All help is appreciated!

********************************************

        Dim crDatabase As Database
        Dim crReport = New ReportDocument()
        Dim crTables As Tables
        Dim crTable As Table
        Dim crTableLogOnInfo As TableLogOnInfo
        Dim crConnectionInfo As ConnectionInfo
       
        crReport.Load("\\Webserver\myfolder\CrystalReport.rpt")

        crConnectionInfo = New ConnectionInfo()

        With crConnectionInfo
            .ServerName = "\\Webserver\database\cr.mdb"
        End With

        crDatabase = crReport.Database
        crTables = crDatabase.Tables

        For Each crTable In crTables
            crTableLogOnInfo = crTable.LogOnInfo
            crTableLogOnInfo.ConnectionInfo = crConnectionInfo
            crTable.ApplyLogOnInfo(crTableLogOnInfo)
        Next

        CrystalReportViewer1.ReportSource = crReport
0
 

Author Comment

by:drees727
ID: 17044779
I modified my crReport.Load to:
crReport.Load(Server.MapPath("CrystalReport.rpt"))

Now I'm back to getting:
The report you requested requires further information.
-----------------------------------------------------------------------------
Server name:    
Database name:    
User name:    
Password:

I'm about to give up on trying to connect to Access and just work with Oracle.
0
 

Author Comment

by:drees727
ID: 17103276
I just realized my problem.  I had to change:

crReport.Load("\\Webserver\myfolder\CrystalReport.rpt")

to

crReport.Load("c:\myfolder\CrystalReport.rpt")

Thanks for your help!

0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have developed many web applications with asp & asp.net and to add and use a dropdownlist was always a very simple task, but with the new asp.net, setting the value is a bit tricky and its not similar to the old traditional method. So in this a…
In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Suggested Courses

598 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question