示例#1
0
        //
        // Generates an html file with embedded QR-code image and opens it with default application
        //
        private static void DisplayQRCode(string url, string image, string title = null)
        {
            var html = "<html><style>h1 {{text-align: center;}} .center {{ display: block; margin-left: auto; margin-right: auto;}}</style><body><!--TITLEHTML--><!--IMGHTML--></body></html>";

            if (!string.IsNullOrEmpty(title))
            {
                html = html.Replace("<!--TITLEHTML-->", $"<p><h1>{title}</h1></p>");
            }

            if (!string.IsNullOrEmpty(url))
            {
                var qrGenerator         = new QRCodeGenerator();
                var qrCodeData          = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);
                var imgType             = Base64QRCode.ImageType.Png;
                var qrCode              = new Base64QRCode(qrCodeData);
                var qrCodeImageAsBase64 = qrCode.GetGraphic(20, Color.Black, Color.White, true, imgType);
                html = html.Replace("<!--IMGHTML-->", $"<img alt=\"Embedded QR Code\" class=\"center\" width=\"500\" height=\"500\" src=\"data:image/{imgType.ToString().ToLower()};base64,{qrCodeImageAsBase64}\"/>");
            }
            else if (!string.IsNullOrEmpty(image))
            {
                html = html.Replace("<!--IMGHTML-->", $"<img alt=\"Embedded QR Code\" class=\"center\" width=\"500px\" height=\"500px\" src=\"{image}\"/>");
            }

            using (var outputFile = new StreamWriter(Path.GetFullPath(".") + "/" + QRCodeHtmlFilename))
            {
                outputFile.WriteLine(html);
            }
            var qrCodeUrl = "file://" + Path.GetFullPath(".") + "/" + QRCodeHtmlFilename;

            OpenBrowser(qrCodeUrl);
        }
示例#2
0
        public string GetQRCodeAsBase64(string textToEncode)
        {
            QRCodeData qrCodeData = _generator.CreateQrCode(textToEncode, QRCodeGenerator.ECCLevel.Q);
            var        qrCode     = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(4));
        }
        public async Task <IActionResult> OnGetAsync()
        {
            //生成用户唯一的验证 key
            var userId = User?.Claims?.FirstOrDefault(e => e.Type == "sub")?.Value;
            var user   = await userManager.FindByIdAsync(userId).ConfigureAwait(false);

            var authenticatorKey = await userManager.GetAuthenticatorKeyAsync(user).ConfigureAwait(false);

            if (string.IsNullOrEmpty(authenticatorKey))
            {
                await userManager.ResetAuthenticatorKeyAsync(user).ConfigureAwait(false);

                authenticatorKey = await userManager.GetAuthenticatorKeyAsync(user).ConfigureAwait(false);
            }

            Key = FormatKey(authenticatorKey);

            var uri = $"otpauth://totp/{urlEncoder.Encode("学习坊登录中心")}:{urlEncoder.Encode(user.UserName)}" +
                      $"?secret={authenticatorKey}&issuer={urlEncoder.Encode("学习坊登录中心")}&digits=6";


            using QRCodeGenerator qrGenerator = new QRCodeGenerator();
            using QRCodeData qrCodeData       = qrGenerator.CreateQrCode(uri, QRCodeGenerator.ECCLevel.Q);


            using Base64QRCode qrCode = new Base64QRCode(qrCodeData);
            var qrCodeImageAsBase64 = qrCode.GetGraphic(20);

            ImageBase64 = $"data:image/png;base64,{qrCodeImageAsBase64}";
            return(Page());
        }
示例#4
0
        public string GetFooter()
        {
            var footerEnPath = Startup.ServerPath + @"\wwwroot\templates\footer.html";

            if (System.IO.File.Exists(footerEnPath))
            {
                var           footer        = System.IO.File.ReadAllText(footerEnPath);
                StringBuilder footerBuilder = new StringBuilder(footer);
                //Genrating QR
                StringBuilder sb1 = new StringBuilder();
                sb1.Append("CPD provider: Sample\r\n");
                sb1.Append("Reference Number: 12345\r\n");
                QRCodeGenerator qrGeneratorbase64   = new QRCodeGenerator();
                QRCodeData      qrCodeData1         = qrGeneratorbase64.CreateQrCode(sb1.ToString(), QRCodeGenerator.ECCLevel.Q);
                Base64QRCode    qrCodeBase          = new Base64QRCode(qrCodeData1);
                string          qrCodeImageAsBase64 = qrCodeBase.GetGraphic(20);
                var             imgType             = Base64QRCode.ImageType.Jpeg;
                var             htmlPictureTag      = $"<img alt='QR' src=\"data:image/{imgType.ToString().ToLower()};base64,{qrCodeImageAsBase64}\" class='img-qr-code' />";
                //End QR Code
                footerBuilder.Replace("{qrImage}", htmlPictureTag);
                footerBuilder.Replace("{refNo}", "1234567890");

                return(footerBuilder.ToString());
            }
            else
            {
                return(string.Empty);
            }
        }
示例#5
0
        public async Task GetHouseAddress(string qr = "")
        {
            if (CanRunTipCommands)
            {
                var houseAddr = QTCommands.GetAccountAddress(Context.Guild.CurrentUser.Id);

                if (qr.ToLower() == "qr")
                {
                    QRCodeGenerator qrgen  = new QRCodeGenerator();
                    QRCodeData      data   = qrgen.CreateQrCode($"{houseAddr}", QRCodeGenerator.ECCLevel.Q);
                    var             qrcode = new Base64QRCode(data);

                    byte[] bytes = Convert.FromBase64String(qrcode.GetGraphic(4, Color.White, Color.FromArgb(54, 57, 62), null));

                    MemoryStream ms = new MemoryStream(bytes);
                    await Context.Channel.SendFileAsync(ms, "qraddr.png", $"`The house deposit address is {houseAddr}`");
                }
                else
                {
                    EmbedBuilder b = new EmbedBuilder();
                    b.WithTitle(Context.Guild.CurrentUser.Username);
                    b.AddField("Address", houseAddr);
                    b.AddField("Developer", "Yokomoko");
                    //b.AddField("Developer Donations", "MVT2AJDK7CYTtWo5fX9u48eQT5ynWPyFFd");
                    b.WithColor(Discord.Color.Blue);
                    b.WithFooter("Payments to these addresses will help fund hosting, and support giveaway events.");
                    await ReplyAsync("", false, b);
                }
            }
            else
            {
                await ReplyAsync($"Please use the <#{Preferences.TipBotChannel}> channel");
            }
        }
示例#6
0
 public SPaquete addPaquete(SPaquete a)
 {
     try
     {
         if (new BLTrayecto().validarTrayecto((int)a.IdTrayecto))
         {
             a.Id                 = 0;
             a.FechaIngreso       = DateTime.Now;
             a.FechaEntrega       = DateTime.Now;
             a.CodigoConfirmacion = Randoms.RandomString(6);
             a.Codigo             = "";
             a.Borrado            = false;
             //a.ListaPaquetePuntoControl = null;
             SPaquete p = _dal.addPaquete(a);
             if (p != null)
             {
                 QRCodeGenerator qrGenerator = new QRCodeGenerator();
                 QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(p.Id.ToString(), QRCodeGenerator.ECCLevel.Q);
                 Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);
                 p.Codigo = qrCode.GetGraphic(20);
                 SPaquete pr = _dal.updatePaquete(p);
                 BLEmail.nuevoPaquete(pr);
                 return(pr);
             }
             throw new ECompartida("Algun error raro en a;adir el paquete");
         }
         throw new ECompartida("El trayecto no cumple con las condiciones necesarias, reviselo y vuelva a intentarlo");
     }
     catch (Exception)
     {
         throw;
     }
 }
示例#7
0
        public async Task <IActionResult> SetupTotp()
        {
            ApplicationUser user = await _userManager.GetUserAsync(User);

            if (!user.TotpEnabled)
            {
                byte[] keyBytes;
                if (user.TotpSecret != null)
                {
                    keyBytes = user.TotpSecret;
                }
                else
                {
                    keyBytes = KeyGeneration.GenerateRandomKey(20);
                }

                string base32Key      = Base32Encoding.ToString(keyBytes);
                byte[] base32KeyBytes = Base32Encoding.ToBytes(base32Key);
                Totp   totp           = new Totp(base32KeyBytes);
                user.TotpSecret = keyBytes;
                await _userManager.UpdateAsync(user);

                QRCodeGenerator    qrGenerator  = new QRCodeGenerator();
                QRCodeData         qrCodeData   = qrGenerator.CreateQrCode($"otpauth://totp/SPSAuthChallenge:{user.UserName}?secret={base32Key}&issuer=SPSAuthChallenge", QRCodeGenerator.ECCLevel.Q);
                Base64QRCode       qrCode       = new Base64QRCode(qrCodeData);
                string             qrCodeBase64 = qrCode.GetGraphic(10);
                SetupTotpViewModel model        = new SetupTotpViewModel
                {
                    QRCodeBase64 = qrCodeBase64
                };
                return(View(model));
            }
            return(RedirectToAction(nameof(Index)));
        }
示例#8
0
        public string GenerateQRCodeByUrl(string url, bool includeImage)
        {
            Url generator = new Url(url);

            string payload = generator.ToString();

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);
            var             imgType     = Base64QRCode.ImageType.Jpeg;

            string qrCodeImageAsBase64 = string.Empty;

            if (includeImage)
            {
                string path = Path.Combine(hostingEnv.ContentRootPath, "Images", "KF_Logo.png");

                qrCodeImageAsBase64 = qrCode.GetGraphic(50,
                                                        Color.Black,
                                                        Color.White,
                                                        (Bitmap)Bitmap.FromFile(path));
            }
            else
            {
                qrCodeImageAsBase64 = qrCode.GetGraphic(50,
                                                        Color.Black,
                                                        Color.White,
                                                        true,
                                                        imgType);
            }

            return(qrCodeImageAsBase64);
        }
示例#9
0
        // Create an invitation to establish a connection between the agents.
        public async Task <JObject> CreateConnectionAsync(Enrollee enrollee)
        {
            var alias      = enrollee.Id.ToString();
            var invitation = await _verifiableCredentialClient.CreateInvitationAsync(alias);

            var invitationUrl          = invitation.Value <string>("invitation_url");
            var credentialDefinitionId = await _verifiableCredentialClient.GetCredentialDefinitionIdAsync(SCHEMA_ID);

            QRCodeGenerator qrGenerator         = new QRCodeGenerator();
            QRCodeData      qrCodeData          = qrGenerator.CreateQrCode(invitationUrl, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode              = new Base64QRCode(qrCodeData);
            string          qrCodeImageAsBase64 = qrCode.GetGraphic(20, "#003366", "#ffffff");

            enrollee.Credential = new Credential
            {
                SchemaId = SCHEMA_ID,
                CredentialDefinitionId = credentialDefinitionId,
                Alias        = alias,
                Base64QRCode = qrCodeImageAsBase64
            };

            var created = await _context.SaveChangesAsync();

            if (created < 1)
            {
                throw new InvalidOperationException("Could not store connection invitation.");
            }

            // TODO after testing don't need to pass back the invitation
            return(invitation);
        }
示例#10
0
        public string GenerateQRCodeByObject(int id)
        {
            Product product = DataBase.GetProductsList().Where(item => item.Id == id).FirstOrDefault();

            string productInfo = string.Empty;

            if (product.Id > 0)
            {
                productInfo = JsonConvert.SerializeObject(product);
            }
            else
            {
                productInfo = "The product does not exist.";
            }

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(productInfo, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);

            var imgType             = Base64QRCode.ImageType.Jpeg;
            var qrCodeImageAsBase64 = qrCode.GetGraphic(50,
                                                        Color.Black,
                                                        Color.White,
                                                        true,
                                                        imgType);

            return(qrCodeImageAsBase64);
        }
示例#11
0
        public async Task GetAddressAsync(string addr = "")
        {
            if (CanRunTipCommands)
            {
                var result = QTCommands.GetAddress(Context.User.Id);
                if (addr == "qr")
                {
                    QRCodeGenerator qrgen = new QRCodeGenerator();

                    QRCodeData data   = qrgen.CreateQrCode($"{result}", QRCodeGenerator.ECCLevel.Q);
                    var        qrcode = new Base64QRCode(data);

                    byte[]       bytes = Convert.FromBase64String(qrcode.GetGraphic(4, Color.White, Color.FromArgb(54, 57, 62)));
                    MemoryStream ms    = new MemoryStream(bytes);
                    await Context.Channel.SendFileAsync(ms, "qraddr.png", $"`Your deposit address is {result}`");
                }
                else
                {
                    var b = new EmbedBuilder();
                    b.WithDescription($"Your deposit address is: **{result}**");
                    b.WithFooter(Preferences.FooterText);
                    await ReplyAsync("", false, b);
                }
            }
            else
            {
                await ReplyAsync($"Please use the <#{Preferences.TipBotChannel}> channel");
            }
        }
示例#12
0
        public async Task <string> GenerateCodeAsync()
        {
            Url    generator = new Url("https://www.oidc.com");
            string payload   = generator.ToString();
            string link      = string.Empty;

            QRCodeGenerator qrGenerator         = new QRCodeGenerator();
            QRCodeData      qrCodeData          = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode              = new Base64QRCode(qrCodeData);
            string          qrCodeImageAsBase64 = qrCode.GetGraphic(20);

            FileDocument uploadResult = FileDocument.Create();

            try
            {
                uploadResult = await
                               BaseContentServer
                               .Build(ContentServerTypeEnum.FIREBASE, _settings)
                               .UploadDocumentAsync(FileDocument.Create(qrCodeImageAsBase64, $"{Helper.RandomNumber(10)}", $"{Helper.RandomNumber(10)}", FileDocumentType.GetDocumentType(MIMETYPE.IMAGE)));

                link = uploadResult.Path;
            }
            catch (Exception e)
            {
                link = string.Empty;
            }

            return(link);
        }
示例#13
0
        public static Base64QRCode CreateQRBase64Code(string text)
        {
            var qrCodeData = qrCodeGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
            var qrCode     = new Base64QRCode(qrCodeData);

            return(qrCode);
        }
示例#14
0
        /// <summary>
        /// Transformar a plain text em QR Code.
        /// <param name="textToEncode">Texto que será codifidado para QR.</param>
        /// </summary>
        public string GenerateQRCode(string textToEncode)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(textToEncode, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(20));
        }
示例#15
0
        public string GetQRBase64(string data, int pixelsPerModule)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(pixelsPerModule));
        }
示例#16
0
        public static string GetPureBase64(string link)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(link, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(4));
        }
示例#17
0
        public static string GenerateQRCodeAsBase64(string content)
        {
            QRCodeData   qrCodeData          = GenerateQRCode(content);
            Base64QRCode qrCode              = new Base64QRCode(qrCodeData);
            string       qrCodeImageAsBase64 = qrCode.GetGraphic(20);

            return(qrCodeImageAsBase64);
        }
示例#18
0
        public PartialViewResult _QR(string id)
        {
            var qrCodeData = new QRCodeGenerator().CreateQrCode(id, QRCodeGenerator.ECCLevel.Q);
            var qr         = new Base64QRCode(qrCodeData).GetGraphic(20);

            ViewBag.generatedQrCode = qr;
            return(PartialView());
        }
示例#19
0
        /// <summary>
        /// 绘制二维码
        /// </summary>
        /// <param name="content"></param>
        /// <returns>Base64 PNG</returns>
        public string RenderBase64(string content)
        {
            QRCodeGenerator generator = new QRCodeGenerator();
            QRCodeData      data      = generator.CreateQrCode(content, _eccLevel);
            var             qrCode    = new Base64QRCode(data);

            return("data:image/png;base64," + qrCode.GetGraphic(Config.Size, Config.DarkColor, Config.LightColor, Config.HasPadding));
        }
示例#20
0
        public static string StringAsBase64ImageData(string text, int size = 5)
        {
            var qrGenerator = new QRCodeGenerator();
            var qrCodeData  = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
            var qrCode      = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(size));
        }
示例#21
0
        private string GenerateQRCode(string transactionId)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(transactionId, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(20));
        }
示例#22
0
        public string GetQRCode(string userId)
        {
            GetKeyUrl(userId);
            QRCodeGenerator qRCodeGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData      = qRCodeGenerator.CreateQrCode(_KeyUrl, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode          = new Base64QRCode(qrCodeData);

            return(qrCode.GetGraphic(10));
        }
示例#23
0
文件: Utils.cs 项目: deefault/TestApp
        public static string GenerateBase64QRCodeFromLink(string link)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(link, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);
            string          image       = qrCode.GetGraphic(50);

            return(image);
        }
示例#24
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="provisionUrl"></param>
        /// <param name=""></param>
        /// <returns></returns>
        private string GetQrBase64Imageg(string provisionUrl, int pixelsPerModule)
        {
            QRCodeGenerator qrGenerator         = new QRCodeGenerator();
            QRCodeData      qrCodeData          = qrGenerator.CreateQrCode(provisionUrl, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode              = new Base64QRCode(qrCodeData);
            string          qrCodeImageAsBase64 = qrCode.GetGraphic(2);

            return($"data:image/png;base64,{qrCodeImageAsBase64}");
        }
示例#25
0
        public static string BytecodeQRinStringImageAsBase64(Byte[] bytesQRcode)
        {
            QRCodeData   qrCodeData          = new QRCodeData(bytesQRcode, QRCodeData.Compression.Uncompressed);
            var          imgType             = Base64QRCode.ImageType.Jpeg;
            Base64QRCode qrCode              = new Base64QRCode(qrCodeData);
            string       qrCodeImageAsBase64 = qrCode.GetGraphic(20, Color.Black, Color.White, true, imgType);

            return(qrCodeImageAsBase64);
        }
示例#26
0
        public string GenerateQrCodeFromString(string text)
        {
            var qrGenerator         = new QRCodeGenerator();
            var qrCodeData          = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
            var qrCode              = new Base64QRCode(qrCodeData);
            var qrCodeImageAsBase64 = qrCode.GetGraphic(20);

            return(qrCodeImageAsBase64);
        }
示例#27
0
        public static string GenerateQRCode(string text)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode      = new Base64QRCode(qrCodeData);
            string          result      = qrCode.GetGraphic(20);

            return(result);
        }
示例#28
0
        public string generateBase64(string value)
        {
            QRCodeGenerator generator = new QRCodeGenerator();
            QRCodeData      codeData  = generator.CreateQrCode(value, QRCodeGenerator.ECCLevel.Q);

            Base64QRCode base64Code = new Base64QRCode(codeData);

            return(base64Code.GetGraphic(20));
        }
        /// <summary>
        /// Converts the input string into a Base64 encoded qr code
        /// </summary>
        /// <param name="data">String to be encoded</param>
        /// <returns></returns>
        public string GetQRCodeBase64Encrypted(string data)
        {
            QRCodeGenerator qrGenerator         = new QRCodeGenerator();
            QRCodeData      qrCodeData          = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode              = new Base64QRCode(qrCodeData);
            var             qrCodeImageAsBase64 = qrCode.GetGraphic(20);

            return(qrCodeImageAsBase64);
        }
示例#30
0
        public string GenerateQRCode(string path)
        {
            QRCodeGenerator qrGenerator         = new QRCodeGenerator();
            QRCodeData      qrCodeData          = qrGenerator.CreateQrCode(path, QRCodeGenerator.ECCLevel.Q);
            Base64QRCode    qrCode              = new Base64QRCode(qrCodeData);
            string          qrCodeImageAsBase64 = qrCode.GetGraphic(20);

            return(qrCodeImageAsBase64);
        }