Example #1
0
        /// <summary>
        /// 远程鉴权
        /// </summary>
        /// <returns></returns>
        public bool AuthRemoteCode()
        {
            App.Current.Dispatcher.BeginInvoke(new Action(() =>
            {
                lblAuthTips.Text = SystemLanguageManager.Instance.ResourceManager.GetString("Authenticating", SystemLanguageManager.Instance.CultureInfo);
            }));

            bool authflag = false;
            var  values   = new List <KeyValuePair <string, string> >();

            string url       = ConfigurationManager.AppSettings["AuthUrl"]; //
            string ukey      = ConfigManager.Instance.Config.UKey;          //
            string macaddrss = SystemInfoUtils.GetMacAddress();
            string type      = "facebook";

            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            long     t  = Convert.ToInt64(ts.TotalSeconds);

            string key = ConfigVals.AccessKey.Substring(8, 20);

            if (macaddrss == "" || key == "")
            {
                return(authflag);
            }
            MD5 md5 = new MD5CryptoServiceProvider();

            byte[] result  = Encoding.Default.GetBytes(ukey + macaddrss + type + t.ToString() + key);
            byte[] bytekey = md5.ComputeHash(result);
            string token   = BitConverter.ToString(bytekey).Replace("-", "");

            /*values.Add(new KeyValuePair<string, string>("ukey", ukey));
             * values.Add(new KeyValuePair<string, string>("macadd", macaddrss));
             * values.Add(new KeyValuePair<string, string>("time", t.ToString()));
             * values.Add(new KeyValuePair<string, string>("token", token));*/

            HttpClientHelp httpClient = new HttpClientHelp();
            var            obj        = new JObject()
            {
                { "ukey", ukey }, { "macadd", macaddrss }, { "type", type }, { "time", t.ToString() }, { "token", token.ToLower() }
            };

            authflag = httpClient.PostFunction(url, obj.ToString(Formatting.None), macaddrss, key, ukey);

            return(authflag);
        }
Example #2
0
        public static string postFile(string apiPath, Dictionary <string, string> par, byte[] bFile, string fileName)
        {
            par = fillSign(par);
            string parUrl = "";

            foreach (var item in par)
            {
                parUrl = parUrl + item.Key + "=" + MyEncoding.UrlEncode(item.Value) + "&";
            }
            parUrl = parUrl.TrimEnd('&');

            if (parUrl != "")
            {
                parUrl = "?" + parUrl;
            }

            return(HttpClientHelp.PostFile(AppHelp.basrUrl + apiPath + parUrl, bFile, fileName));
        }
Example #3
0
        /// <summary>
        /// 远程鉴权
        /// </summary>
        /// <returns></returns>
        public bool AuthRemoteCode()
        {
            lab_authmsg.Text = "远程鉴权中……";
            bool authflag = false;
            var  values   = new List <KeyValuePair <string, string> >();

            string url       = ConfigurationManager.AppSettings["AuthUrl"];; //
            string ukey      = ConfigurationManager.AppSettings["UKey"];;    //
            string macaddrss = SystemInfoUtils.GetMacAddress();

            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            long     t  = Convert.ToInt64(ts.TotalSeconds);

            string key = ConfigVals.AccessKey.Substring(8, 20);

            if (macaddrss == "" || key == "")
            {
                return(authflag);
            }
            MD5 md5 = new MD5CryptoServiceProvider();

            byte[] result  = Encoding.Default.GetBytes(ukey + macaddrss + t.ToString() + key);
            byte[] bytekey = md5.ComputeHash(result);
            string token   = BitConverter.ToString(bytekey).Replace("-", "");

            /*values.Add(new KeyValuePair<string, string>("ukey", ukey));
             * values.Add(new KeyValuePair<string, string>("macadd", macaddrss));
             * values.Add(new KeyValuePair<string, string>("time", t.ToString()));
             * values.Add(new KeyValuePair<string, string>("token", token));*/

            HttpClientHelp httpClient = new HttpClientHelp();
            var            obj        = new JObject()
            {
                { "ukey", ukey }, { "macadd", macaddrss }, { "time", t.ToString() }, { "token", token.ToLower() }
            };

            authflag = httpClient.PostFunction(url, obj.ToString(Formatting.None));

            return(authflag);
        }
Example #4
0
 public static byte[] getFile(string apiPath, Dictionary <string, string> par)
 {
     return(HttpClientHelp.GetFile(AppHelp.basrUrl + apiPath, fillSign(par)));
 }
Example #5
0
 public static string post(string apiPath, Dictionary <string, string> par)
 {
     return(HttpClientHelp.Post(AppHelp.basrUrl + apiPath, fillSign(par)));
 }
        public async Task <IActionResult> Upload(FileUploadDto dto)
        {
            ResposeResult result = new ResposeResult();

            if (dto.Type == 0)
            {
                return(Ok(result));
            }

            FileModel fileModel   = new FileModel();
            string    filePath    = string.Empty;
            string    webRootPath = _webHostEnvironment.WebRootPath;                            //获取wwwroot文件夹
            string    fileDir     = $"{webRootPath}/upload/{DateTime.Now.ToShortDateString()}"; //文件目录 E:/upload/2020-06-20/


            try
            {
                if (!Directory.Exists(fileDir))
                {
                    Directory.CreateDirectory(fileDir);
                }
                if (dto.Type == 1)
                {
                    IFormFile file    = dto.File;
                    string    fileExt = Path.GetExtension(file.FileName); //文件扩展名,不含“.”
                    if (string.IsNullOrEmpty(fileExt))
                    {
                        result.Msg = "找不到文件扩展名";
                        return(Ok(result));
                    }

                    string newFileName = System.Guid.NewGuid().ToString() + "." + fileExt; //随机生成新的文件名

                    filePath = $"{fileDir}/{newFileName}";                                 //文件路径

                    //通过文件流的方式保存文件
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        await file.CopyToAsync(stream);
                    }
                }
                else if (dto.Type == 2)
                {
                    Stream fromFile = await HttpClientHelp.Download(dto.Url, HttpMethod.Get);

                    string fileExt = Path.GetExtension(dto.Url); //文件扩展名
                    if (string.IsNullOrEmpty(fileExt))
                    {
                        fileExt = "jpg";
                        //result.Msg = "找不到文件扩展名";
                        //return Ok(result);
                    }
                    string newFileName = System.Guid.NewGuid().ToString() + fileExt; //随机生成新的文件名

                    //已追加的方式 写入文件流
                    filePath = $"{fileDir}/{newFileName}";//文件路径
                    FileHelp.CopyFile(fromFile, filePath, 1024 * 1024);
                }
            }
            catch (Exception e)
            {
                if (System.IO.File.Exists(filePath))
                {
                    System.IO.File.Delete(filePath);
                }
                result.Msg = e.Message;
                return(Ok(result));
            }
            result.IsSuccess       = true;
            result.Code            = HttpStatusCode.Created;
            fileModel.AbsolutePath = filePath;
            fileModel.VirtualPath  = filePath.Replace(webRootPath, "");
            result.Data            = fileModel;
            return(Ok(result));
        }