• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net访问网络路径方法(模拟用户登录)

    核心代码:

    public class IdentityScope : IDisposable
    {
        // obtains user token
        [DllImport("advapi32.dll", SetLastError = true)]
        static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
        // closes open handes returned by LogonUser
        [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        extern static bool CloseHandle(IntPtr handle);
    
        [DllImport("Advapi32.DLL")]
        static extern bool ImpersonateLoggedOnUser(IntPtr hToken);
        [DllImport("Advapi32.DLL")]
        static extern bool RevertToSelf();
        const int LOGON32_PROVIDER_DEFAULT = 0;
        const int LOGON32_LOGON_NEWCREDENTIALS = 9;//域ò控?中D的?需è要a用?:Interactive = 2
        private bool disposed;
        /// summary>
        /// 登?录?
        /// /summary>
        /// param name="sUsername">用?户§名?/param>
        /// param name="sDomain">域ò名?,?如?果?不?在ú域ò中D就í使1用?机ú器÷IP地?址·/param>
        /// param name="sPassword">密ü码?/param>
        public IdentityScope(string sUsername, string sDomain, string sPassword)
        {
          // initialize tokens
          IntPtr pExistingTokenHandle = new IntPtr(0);
          IntPtr pDuplicateTokenHandle = new IntPtr(0);
          try
          {
            // get handle to token
            bool bImpersonated = LogonUser(sUsername, sDomain, sPassword,LOGON32_LOGON_NEWCREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle);
            if (true == bImpersonated)
            {
              if (!ImpersonateLoggedOnUser(pExistingTokenHandle))
              {
                int nErrorCode = Marshal.GetLastWin32Error();
                throw new Exception("ImpersonateLoggedOnUser error;Code=" + nErrorCode);
              }
            }
            else
            {
              int nErrorCode = Marshal.GetLastWin32Error();
              throw new Exception("LogonUser error;Code=" + nErrorCode);
            }
          }
          finally
          {
            // close handle(s)
            if (pExistingTokenHandle != IntPtr.Zero)
              CloseHandle(pExistingTokenHandle);
            if (pDuplicateTokenHandle != IntPtr.Zero)
              CloseHandle(pDuplicateTokenHandle);
          }
        }
        protected virtual void Dispose(bool disposing)
        {
          if (!disposed)
          {
            RevertToSelf();
            disposed = true;
          }
        }
        public void Dispose()
        {
          Dispose(true);
        }
      }

    第二个参数是域名,有域名的话写域名,没有域名写目标机器的IP就可以了

    using (IdentityScope c = new IdentityScope("administrator", "192.168.0.1", "11111"))
    {
     string[] filelist = System.IO.Directory.GetDirectories(@"\\192.168.0.1\folderName");
    }
    您可能感兴趣的文章:
    • asp.net(c#) RSS功能实现代码
    • asp.net下URL网址重写成.html格式、RSS、OPML的知识总结
    • 用 Asp.Net 建立一个在线 RSS 新闻聚合器的方法
    • 一个ASP.NET的MYSQL的数据库操作类自己封装的
    • asp.net截屏功能实现截取web页面
    • Asp.net中将Word文件转换成HTML的方法
    • ASP.NET自动为URL加上超链接的代码
    • 服务器安全狗导致ASP.NET网站运行出错的一个案例
    • Asp.Net中的字符串和HTML十进制编码转换实现代码
    • ASP.NET读取RSS的方法
    上一篇:ASP.NET自动为URL加上超链接的代码
    下一篇:Asp.net中将Word文件转换成HTML的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    asp.net访问网络路径方法(模拟用户登录) asp.net,访问,网络,路径,方法,