从Web服务C#.net

时间:2017-01-27 20:15:26

标签: c# asp.net soap

我的Web服务中有一个GetLocalTime()方法,我想在form.cs中调用,并在按钮点击时在设备上的Web服务器上设置时间?那么我应该在按钮点击事件上写什么来调用datetime函数并设置时间?

Web服务中的方法:

[WebMethod]
        public DateTime GetLocalTime()
        {
            OracleBridge ob = new OracleBridge(_connStr);
            string sqlQuery = "select sysdate from dual";

            DateTime dt = new DateTime();
            try
            {

                dt = Convert.ToDateTime(ob.ExecuteScalar(sqlQuery));

            }
            catch (OracleException ex)
            {
                throw ex;
            }

            return dt;
        }

在form.cs中单击按钮事件以获取和设置时间:

 private void btnSync_Click(object sender, EventArgs e)
        {

                           ????????????               // what should I write here to call the method
                DateTime localDateTime = ?????????;  //what should I write here pass datetime to setsystemdatetime


                SetSystemDateTime(localDateTime);

                System.Threading.Thread.Sleep(500);
                SetSystemDateTime(localDateTime); 
}

1 个答案:

答案 0 :(得分:0)

.NET CLR不公开任何设置时间的方法。如果你真的想要这样做,你将需要使用Win32 SetLocalTime APIimport it

我建议不要让Web服务器进程设置系统时钟。当您能够设置时钟时,可以绕过各种安全机制;例如,恶意用户可能导致过期的会话或证书显示为有效。