Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Access network share from ASP.NET

260 views
Skip to first unread message

Yuriy Galanter

unread,
Mar 10, 2008, 3:50:57 PM3/10/08
to
Hi all,

I need to access a file on a network share from an ASP.NET application
(using methods like file.readalltext). Of course ASP.NET doesn't have access
to that share. But I do have both UserID and password of a user who does
have access. How do I use them to supply credentials for file.readalltext
method (similar how I can do that for WebClient with NetworkCredentials)?

Thanks!

Yuriy.


sloan

unread,
Mar 10, 2008, 4:03:20 PM3/10/08
to

Quickest way is impersonation with asp.net.

Inside of

<system.web>


<authentication mode="Windows" />
<identity impersonate="true" userName="mycompany\myname" password="mypwd"
/>

</system.web>


That should give you something to search on.


"Yuriy Galanter" <yu...@galanter.net> wrote in message
news:eq0HNgug...@TK2MSFTNGP05.phx.gbl...

George Ter-Saakov

unread,
Mar 10, 2008, 4:51:26 PM3/10/08
to
Here you go....Exactly what you want without using impersonation.

#region WIN API Declarations

//used in calling WNetAddConnection2

[StructLayout(LayoutKind.Sequential)]

public struct NETRESOURCE

{

public int dwScope;

public int dwType;

public int dwDisplayType;

public int dwUsage;

[MarshalAs(UnmanagedType.LPStr)]

public string lpLocalName;

[MarshalAs(UnmanagedType.LPStr)]

public string lpRemoteName;

[MarshalAs(UnmanagedType.LPStr)]

public string lpComment;

[MarshalAs(UnmanagedType.LPStr)]

public string lpProvider;

}

//WIN32API - WNetAddConnection2

[DllImport("mpr.dll",

CharSet = System.Runtime.InteropServices.CharSet.Auto)]

private static extern int WNetAddConnection2A(

[MarshalAs(UnmanagedType.LPArray)] NETRESOURCE[] lpNetResource,

[MarshalAs(UnmanagedType.LPStr)] string lpPassword,

[MarshalAs(UnmanagedType.LPStr)] string lpUserName,

int dwFlags);

[DllImport("mpr.dll",

CharSet = System.Runtime.InteropServices.CharSet.Auto)]

private static extern int WNetCancelConnection2A(

[MarshalAs(UnmanagedType.LPStr)] string lpName,

int dwFlags, int fForce);

#endregion

private byte[] GetFSMSFile(string sFile)

{

NETRESOURCE[] nr = new NETRESOURCE[1];

nr[0].lpRemoteName = _sFSMSShare;

nr[0].lpLocalName = ""; //mLocalName;

nr[0].dwType = 1; //disk

nr[0].dwDisplayType = 0;

nr[0].dwScope = 0;

nr[0].dwUsage = 0;

nr[0].lpComment = "";

nr[0].lpProvider = "";

int iErr = WNetAddConnection2A(nr, _sFSMSShareUserPassword, _sFSMSShareUser,
0);

if (iErr > 0)

throw new Exception("Can not connect to FSMS share folder");

FileStream st = null;

try

{

st = new FileStream(_sFSMSShare + "\\" + sFile, FileMode.Open);

int iLen = (int)st.Length;

byte []b = new byte[iLen];

st.Read(b, 0, iLen);

return b;

}

finally

{

if( st != null )

st.Close();

WNetCancelConnection2A(_sFSMSShare, 0, -1);

}

}

"Yuriy Galanter" <yu...@galanter.net> wrote in message
news:eq0HNgug...@TK2MSFTNGP05.phx.gbl...

Yuriy Galanter

unread,
Mar 12, 2008, 8:27:29 AM3/12/08
to
Thanks guys, you pointed me in the right direction and I got it working.
Great group!

Yuriy.


lib...@gmail.com

unread,
Oct 29, 2012, 10:15:38 PM10/29/12
to
Yuriy Galanter於 2008年3月12日星期三UTC+8下午8時27分29秒寫道:
> Thanks guys, you pointed me in the right direction and I got it working.
> Great group!
>
> Yuriy.

I have the same problem, but I did not get it work. Would u mind give me a complete example?
0 new messages