When I first started using Crystal Reports .NET, I encountered the same issue. I could create the report, and run it, pointing to a SQL Server on my local machine, it worked fine. When I pointed it to a different server, or, migrated my web application to a different server, I received the login failure.
In my case, this had to do with the account that Crystal reports used to access the SQL Server. It was a local machine account that has administrative rights on my local SQL Server, but not on the dev server.
What I was trying to do was to take a report that was created from a stored procedure, and pass a dataset to it. Basically, we were trying to print from an ADO.net dataset.
My workaround was to use the dataset to create an XML file. I would then use the XML file to create the Crystal Report (in CR.NET, you can use XML as a database). Because I didn't need to access a SQL Server to create the report originally, it wouldn't try to use any credentials later. I could pass it the dataset with no problems (I didn't even need the XML file).
I hope this works.
Paul Hammond
Covenant Web Design
http://www.covenantwebdesign.com