Connecting to FoxPro from .NET

Z

z71mdridin

I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:

ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.

I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.

Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
Z

z71mdridin

Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;

but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.

this may help

http://connectionstrings.com/

http://connectionstrings.com/?carrier=visualfoxpro


I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
Z

z71mdridin

Anybody have any other suggestions?
Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;

but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.

this may help

I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
M

Mike

Does your table 'table.dbf' exist? Did you give your ID or ASPNET ID
permission to the FoxPro database?


z71mdridin said:
Anybody have any other suggestions?
Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;

but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.

this may help




I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
J

Juan T. Llibre

re:
!> My connection string is as follows:
....snip...
!> but I still get the error message:
!> System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
!> FoxPro Driver]File 'table.dbf' does not exist

That's a permissions problem.

You are accessing "table.dbf" at a remote server, but the account ASP.NET
uses to access the file doesn't have access permissions to "table.dbf".

You need to have ASP.NET impersonate a network account which
has the necessary permissions to access the "table.dbf" resource.





Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
z71mdridin said:
Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;

but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.

this may help

http://connectionstrings.com/

http://connectionstrings.com/?carrier=visualfoxpro


I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
Z

z71mdridin

I understand that this is a permissions issue. I am just trying to
figure out how to solve the problem. As mentioned before, I dont want
to create the ASPNET account on the remote server and manually manage
the passwords for the account. I already have an account, "webuser",
setup on both servers that I would like to reuse for this particular
instance. I am just trying to figure out how to accomplish this. Is
is possible to include some keyword in the connection string to
force .net to connect to the foxpro directory as webuser instead of
aspnet? Is impersonation possible even though I am using forms
authentication throughout the rest of the site?

Thanks for all the feedback so far
re:
!> My connection string is as follows:
...snip...
!> but I still get the error message:
!> System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
!> FoxPro Driver]File 'table.dbf' does not exist

That's a permissions problem.

You are accessing "table.dbf" at a remote server, but the account ASP.NET
uses to access the file doesn't have access permissions to "table.dbf".

You need to have ASP.NET impersonate a network account which
has the necessary permissions to access the "table.dbf" resource.

Juan T. Llibre, asp.net MVP
asp.net faq :http://asp.net.do/faq/
foros de asp.net, en español :http://asp.net.do/foros/

Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;
but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.
this may help
http://connectionstrings.com/
http://connectionstrings.com/?carrier=visualfoxpro

I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
J

Juan T. Llibre

re:
!> I dont want to create the ASPNET account on the remote server
!> and manually manage the passwords for the account.

What works best is using a network account which ASP.NET
impersonates when accessing the remote resource.

The reason you need a network account is that the account needs
to have access to both the remote compuiter and your IIS server box.

Only a network account will be able to do that.

re:
!> I already have an account, "webuser", setup on both servers
!> that I would like to reuse for this particular instance.

Only if it's a network account and you setup ASP.NET to impersonate it.

The problem is that on Server1 that account will be "Server1\webuser"
and on Server2 that account will be "Server2\webuser".

They aren't the same account.

re:
!> Is impersonation possible even though I am using
!> forms authentication throughout the rest of the site?

Yes.

Forms authentication and ASP.NET process impersonation are two different things.

ASP.NET will need to impersonate an identity which has read/change permissions on "table.dbf".
Your application's users will be able to access "table.dbf" through the impersonated ASP.NET account.

References...

"Configuring ASP.NET Process Identity" :
http://msdn2.microsoft.com/en-us/library/dwc1xthy.aspx

Make sure you grant access to the impersonated account on your IIS server per this list :
http://msdn2.microsoft.com/en-us/library/kwzs111e.aspx



Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
I understand that this is a permissions issue. I am just trying to
figure out how to solve the problem. As mentioned before, I dont want
to create the ASPNET account on the remote server and manually manage
the passwords for the account. I already have an account, "webuser",
setup on both servers that I would like to reuse for this particular
instance. I am just trying to figure out how to accomplish this. Is
is possible to include some keyword in the connection string to
force .net to connect to the foxpro directory as webuser instead of
aspnet? Is impersonation possible even though I am using forms
authentication throughout the rest of the site?

Thanks for all the feedback so far
re:
!> My connection string is as follows:
...snip...
!> but I still get the error message:
!> System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
!> FoxPro Driver]File 'table.dbf' does not exist

That's a permissions problem.

You are accessing "table.dbf" at a remote server, but the account ASP.NET
uses to access the file doesn't have access permissions to "table.dbf".

You need to have ASP.NET impersonate a network account which
has the necessary permissions to access the "table.dbf" resource.

Juan T. Llibre, asp.net MVP
asp.net faq :http://asp.net.do/faq/
foros de asp.net, en español :http://asp.net.do/foros/

Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;
but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.
this may help
http://connectionstrings.com/
http://connectionstrings.com/?carrier=visualfoxpro

I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 
J

Juan T. Llibre

One more thing...

Fellow MVP Rick Strahl has written "Web Connection" :

http://www.west-wind.com/webconnection/

It allows you to connect Web Applications to Visual FoxPro with minimum fuss/problems.

If you are committed to Visual FoxPro as a database platform,
you can't do any better than what Rick has written for "Web Connection".

You get full FoxPro source code to learn from/modify as you like.



Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
I understand that this is a permissions issue. I am just trying to
figure out how to solve the problem. As mentioned before, I dont want
to create the ASPNET account on the remote server and manually manage
the passwords for the account. I already have an account, "webuser",
setup on both servers that I would like to reuse for this particular
instance. I am just trying to figure out how to accomplish this. Is
is possible to include some keyword in the connection string to
force .net to connect to the foxpro directory as webuser instead of
aspnet? Is impersonation possible even though I am using forms
authentication throughout the rest of the site?

Thanks for all the feedback so far
re:
!> My connection string is as follows:
...snip...
!> but I still get the error message:
!> System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
!> FoxPro Driver]File 'table.dbf' does not exist

That's a permissions problem.

You are accessing "table.dbf" at a remote server, but the account ASP.NET
uses to access the file doesn't have access permissions to "table.dbf".

You need to have ASP.NET impersonate a network account which
has the necessary permissions to access the "table.dbf" resource.

Juan T. Llibre, asp.net MVP
asp.net faq :http://asp.net.do/faq/
foros de asp.net, en español :http://asp.net.do/foros/

Yeah, I have already tried looking there. My connection string is as
follows:
Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=\
\remoteServer\foxPro\Data;Exclusive=No;
Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;
but I still get the error message:
System.Data.Odbc.OdbcException: ERROR [42S02] [Microsoft][ODBC Visual
FoxPro Driver]File 'table.dbf' does not exist.
this may help
http://connectionstrings.com/
http://connectionstrings.com/?carrier=visualfoxpro

I have an asp.net website that uses Form authentication to
authenticate users. I need to provide users with a report based on
FoxPro data that resides on a remote server. When I attempt to
connect to the Foxpro directory by using the ODBC DSN that we
currently use in ColdFusion, I get the following message:
ERROR [42S02] [Microsoft][ODBC Visual FoxPro Driver]File 'table.dbf'
does not exist.
I know this is probably a permissions issue because asp.net is being
run under a local username. I don't want to have to setup the aspnet
username on the remote server and manually manage passwords, and I
don't want to set up all web users names on the remote server.
I already have a specific user 'webuser' that has access rights to
both the webserver and the foxpro remote directory and would like to
make use of this existing user to connect from .NET.
Is there a way to connect to this FoxPro directory by specifying a
username password with the connection string?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top