一个不太懂的问题。有兴趣的进来看看。在线等解决

来源:互联网  时间:2016/6/30 21:11:39

关于网友提出的“ 一个不太懂的问题。有兴趣的进来看看。在线等解决”问题疑问,本网通过在网上对“ 一个不太懂的问题。有兴趣的进来看看。在线等解决”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 一个不太懂的问题。有兴趣的进来看看。在线等解决
描述:


访问服务器的文件夹。例如192.168.0.6\Test文件夹(只是打个比方。地址随便写的)。
需要通过登录,才有权限查看。
此时我想用代码去访问时,自动完成登录。我不知道能不能实现。本人是C#
是否有哪位大侠知道怎么去处理呢?或者在代码方面是没有办法的?


解决方案1:

代码可以参考

using System.Reflection;
using System.Runtime.InteropServices;
using System.ComponentModel;
public class YourClass {
[DllImport("mpr.dll")]
private static extern int WNetAddConnection2A(ref NetResource pstNetRes, string psPassword, string psUsername, int piFlags);
[DllImport("mpr.dll")]
private static extern int WNetCancelConnection2A(string psName, int piFlags, int pfForce);
[StructLayout(LayoutKind.Sequential)]
private struct NetResource {
    public int iScope;
    public int iType;
    public int iDisplayType;
    public int iUsage;
    public string sLocalName;
    public string sRemoteName;
    public string sComment;
    public string sProvider;
}
private const int RESOURCETYPE_DISK = 0x1;
private void LoginToShare(string serverName, string shareName, string user, string password) {
        string destinationDirectory = string.Format(@"\\{0}\{1}", serverName, shareName);
        NetResource nr = new NetResource();
        nr.iScope = 2;
        nr.iType = RESOURCETYPE_DISK;
        nr.iDisplayType = 3;
        nr.iUsage = 1;
        nr.sRemoteName = destinationDirectory;
        nr.sLocalName = null;
        int flags = 0;
        int rc = WNetAddConnection2A(ref nr, password, user, flags);
        if (rc != 0) throw new Win32Exception(rc);
    }
    private void LogoutFromShare(string serverName, string shareName) {
        string destinationDirectory = string.Format(@"\\{0}\{1}", serverName, shareName);
        int flags = 0;
        int rc = WNetCancelConnection2A(destinationDirectory, flags, Convert.ToInt32(false));
    }

上一篇如何访问远程服务器的虚拟目录
下一篇在cs页面,离开当前页面时应调用什么事件修改数据
明星图片
相关文章
《 一个不太懂的问题。有兴趣的进来看看。在线等解决》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)