The problem (and the only one) is security.
I assume that you coping file from ASP.NET hence under local ASP.NET account
your pages running under.
So you either allow access read/write to those folders to "everyone"
account.
Or you you will have to go there (to those shared folders) using different
accounts.
Here is how to do that. I am reading file from protected share folder into
byte array into this example.
#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);
}
}
}
I have an application which is copying files from one location to
another using UNC paths. This is working fine right now using a local
machine but it will soon be moved to a WAN and I am wondering what
type, if any, problems I may have in doing this.
Does anyone have any experience with this and what can I expect or do
to eliminate any potential problems.
Steve- Hide quoted text -
- Show quoted text -