コード例 #1
0
        public string signUrl(string url)
        {
            string Nonce, ss, s;

            if (LoggedIn)
            {
                int fclientnonce = (int)(DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond / (1000 * 60 * 5));  // valid for 5*60*1000 ms = 5 minutes;
                Nonce = fclientnonce.ToString("X");
                while (Nonce.Length < 8)
                {
                    Nonce = '0' + Nonce;
                }
                if (Nonce.Length > 8)
                {
                    Nonce = Nonce.Substring(Nonce.Length - 8, 8);
                }
                ss = crc32(url, crc32(Nonce, SessionPrivateKey)).ToString("X");
                while (ss.Length < 8)
                {
                    ss = '0' + ss;
                }
                s = url.IndexOf("?") == -1 ? url + "?session_signature=" : url + "&session_signature=";
                return(s + SessionIDHexa8 + Nonce + ss);
            }
            else
            {
                return(url);
            }
        }