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

php中文网
发布: 2016-05-31 19:30:45
原创
1158人浏览过

核心代码:

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>
    /// 登&#63;录&#63;
    /// </summary>
    /// <param name="sUsername">用&#63;户§名&#63;</param>
    /// <param name="sDomain">域ò名&#63;,&#63;如&#63;果&#63;不&#63;在ú域ò中D就í使1用&#63;机ú器÷IP地&#63;址·</param>
    /// <param name="sPassword">密ü码&#63;</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就可以了

网络工作室整站 for Dedecms5.7 SP1
网络工作室整站 for Dedecms5.7 SP1

基于DEDECMS5.7 SP1制作的漂亮网络工作室整站源码,生成HTML文件。利于收录。整站采用黑色配色,彰显大气。目前仅添加新闻,案例栏目。其他类别请自行在后台添加,并修改首页模板的调用。 安装方法:1.访问:域名/install 按照提示进行安装.2.完成后登陆网站后台---还原数据库3.系统设置---修改网址和网站名称.4.生成整站,后台信息:dede后台用户名:admin后台密码:www

网络工作室整站 for Dedecms5.7 SP1 0
查看详情 网络工作室整站 for Dedecms5.7 SP1

using (IdentityScope c = new IdentityScope("administrator", "192.168.0.1", "11111"))
{
 string[] filelist = System.IO.Directory.GetDirectories(@"\192.168.0.1olderName");
}
登录后复制

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号