C#登入遠程windows系統樣本

來源:互聯網
上載者:User
public class Global : System.Web.HttpApplication
    ...{
        protected void Application_Start(object sender, EventArgs e)
        ...{
            System.Runtime.Remoting.RemotingConfiguration.Configure(Server.MapPath(HttpContext.Current.Request.ApplicationPath + "/web.config"), false);

            Application["helper"] = new Helper();

            string password = "";

                IntPtr accessToken = new IntPtr(0);
                SimpleCrypto.PasswordDecrypt(ConfigurationManager.AppSettings["UPLOAD_PASSWD"], out password);
                if (NetworkSecurity.LogonAndGetToken(ConfigurationManager.AppSettings["UPLOAD_SITE"],
                    ConfigurationManager.AppSettings["UPLOAD_USER"], password,
                    ConfigurationManager.AppSettings["UPLOAD_NETWORK_LogonType"], ConfigurationManager.AppSettings["UPLOAD_NETWORK_LogonProvider"],
                    ref accessToken) == false)
                ...{
                    throw new Exception("Logon Failed");
                }
                password = "";
                Application.Add("AccessToken", accessToken);

                HttpContext.Current.User = new WindowsPrincipal(new WindowsIdentity((IntPtr)Application["AccessToken"]));
                (HttpContext.Current.User.Identity as WindowsIdentity).Impersonate();
                FileStream fs = new FileStream(ConfigurationManager.AppSettings["UPLOADSGFT"], FileMode.Open, FileAccess.Read);
                StreamReader st = new StreamReader(fs, System.Text.Encoding.Default);
                string word;
                Dictionary<string, string> postFilter = new Dictionary<string, string>();
                while ((word = st.ReadLine()) != null)
                ...{
                    if (!word.Trim().StartsWith("//") && !postFilter.ContainsKey(word.Trim().ToLower()))
                        postFilter.Add(word.Trim().ToLower(), string.Empty);
                }
                st.Close();
                Application.Add("FilterText", postFilter);

        }

        protected void Application_End(object sender, EventArgs e)
        ...{
            NetworkSecurity.CloseToken((IntPtr)Application["AccessToken"]);
            Application.Clear();
        }
    }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.