知识大全 如何扮演另一个帐号(C#实现)

Posted

篇首语:月与灯依在,不见去年人本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何扮演另一个帐号(C#实现)相关的知识,希望对你有一定的参考价值。

如何扮演另一个帐号(C#实现)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

如何扮演另一个帐号(C#实现)  

  using directives#region Using directives

  using System;using System Security Principal;using System Runtime InteropServices;using System Text RegularExpressions;#endregion

  namespace Impersonal    class Program            测试代码#region 测试代码        public static void Main(string[] args)                    Console WriteLine( 当前用户是:     + WindowsIdentity GetCurrent() Name);            ImpersonatedWork testDel = new ImpersonatedWork(Test);            ImpersonateAndDo( epro\\\\liping testDel);            Console WriteLine( 当前用户是:     + WindowsIdentity GetCurrent() Name);                static void Test()                    Console WriteLine( 当前用户是:                 + WindowsIdentity GetCurrent() Name);                #endregion

  [DllImport( advapi dll SetLastError = true)]        public extern static bool LogonUser(String lpszUsername String lpszDomain             String lpszPassword int dwLogonType             int dwLogonProvider ref IntPtr phToken);

  [DllImport( kernel dll CharSet = CharSet Auto)]        public extern static bool CloseHandle(IntPtr handle);

  [DllImport( advapi dll CharSet = CharSet Auto SetLastError = true)]        public extern static bool DuplicateToken(IntPtr ExistingTokenHandle             int SECURITY_IMPERSONATION_LEVEL ref IntPtr DuplicateTokenHandle);

  public delegate void ImpersonatedWork();        /**//// <summary>        /// 以指定用户的身份去做一件事情        /// </summary>        /// <param name= UserName ></param>        /// <param name= PWD ></param>        /// <param name= WhatToDo ></param>        public static void ImpersonateAndDo(string UserName string PWD ImpersonatedWork WhatToDo)                    扮演用户#region 扮演用户            string domainName = string Empty;            string userName = string Empty;            IntPtr tokenHandle = new IntPtr( );            IntPtr dupeTokenHandle = new IntPtr( );            const int LOGON _PROVIDER_DEFAULT = ;            const int LOGON _LOGON_INTERACTIVE = ;            const int SecurityImpersonation = ;            if (! Regex IsMatch(UserName @ ^\\w+[\\\\]?\\w+$ ))                            throw new ApplicationException( 非法的用户名 );                        string[] tmp = UserName Split(new char[] \\\\ );            if (tmp Length > )                            domainName = tmp[ ];                userName = tmp[ ];                        else                            userName = tmp[ ];                        tokenHandle = IntPtr Zero;            dupeTokenHandle = IntPtr Zero;            bool returnValue = LogonUser(userName domainName   PWD                 LOGON _LOGON_INTERACTIVE LOGON _PROVIDER_DEFAULT                 ref tokenHandle);            if (!returnValue)                            throw new ApplicationException( 取Handle出错了! );           

  //Console WriteLine( 当前用户是:             //    + WindowsIdentity GetCurrent() Name);

cha138/Article/program/net/201311/12516

相关参考

知识大全 C#中启动另一个程序的实现方法

C#中启动另一个程序的实现方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一段实例代码程序的

知识大全 手机淘宝可以同时登录两个帐号吗

手机淘宝可以同时登录两个帐号吗嗯,一个app的话只能登录一个,你如果想登陆两个的话,教你一个办法,在手机上还有另一个办法就是可以打开你的手机ie浏览器,直接搜他们的网站,就可以登录第二个账号了。手机淘

知识大全 求一个好玩的 适合女孩子玩的网路游戏,角色扮演一类的

求一个好玩的适合女孩子玩的网路游戏,角色扮演一类的无尤/haosf角色扮演网游,操作简单,上手快。里面很多女生玩家,我是女的玩著也不错,你可以玩玩看。跪求一个好玩的角色扮演类的网路游戏神鬼传奇求一个好

知识大全 c# static的全部用法收集整理

   static的全部用法   要理解static就必须要先理解另一个与之相对的关键字很多人可能都还不知道有这个关键字那就是auto其实我

知识大全 c#:static使用方法整理

  要理解static就必须要先理解另一个与之相对的关键字很多人可能都还不知道有这个关键字那就是auto其实我们通常声明的不用static修饰的变量都是auto的因为它是默认的就象short和long

知识大全 帮我创建一个百度帐号

急!帮我创建一个百度帐号!wow1624密码1624wow行吗???我很需要希望同意(*^__^*)嘻嘻……,-~~-.___./|\'\\()0\\_/-,,----\'====/\\-\'~;/~

角色冲突:当一个人扮演一个角色或同时扮演几个不同的角色时,由于不能胜任,造成不合适宜而发生的矛盾和冲突。下列情形中不属于

角色冲突:当一个人扮演一个角色或同时扮演几个不同的角色时,由于不能胜任,造成不合适宜而发生的矛盾和冲突。下列情形中不属于角色冲突的一项是:_____A、一些大一新生人学后,面对新的生活环境很不适应B、

知识大全 一个淘宝帐号最多能开几个淘宝店?

一个淘宝帐号最多能开几个淘宝店?一个淘宝账号只能开一个店铺,一张身份证只能开一个店铺可以多个账户管理一家店铺,可以通过开通子账户来进行第一步:申请开通子账户。第二步:给子账户开通管理店铺的许可权。第三

知识大全 帮我注册一个谷歌邮箱帐号 私信我密码 谢谢各位了

悬赏100帮我注册一个谷歌邮箱帐号私信我密码谢谢各位了!已发送到你私信里资料填一下就行谁帮我注册个谷歌邮箱帐号?:aounts.google./NewAount?service=mail&co

知识大全 同一个支付宝帐号能在淘宝和阿里巴巴上各开一个店吗?

同一个支付宝帐号能在淘宝和阿里巴巴上各开一个店吗?可以的,只要支付宝账户资讯与淘宝会员名及阿里会员名方面的资讯一致就行。一个支付宝只能系结一个淘宝账户,申请一个淘宝店铺淘宝店铺申请流程1、账户的支付宝