Exemplo n.º 1
0
        private string RegisterTagUrl(string text,
                                      string CmsHost,
                                      EmailQueueTo emailqueueto,
                                      Dictionary <string, OneTimeLink> list,
                                      string votelink,
                                      string id,
                                      bool showfamily = false)
        {
            string      qs = "{0},{1},{2}".Fmt(id, emailqueueto.PeopleId, emailqueueto.Id);
            OneTimeLink ot;

            if (list.ContainsKey(qs))
            {
                ot = list[qs];
            }
            else
            {
                ot = new OneTimeLink
                {
                    Id          = Guid.NewGuid(),
                    Querystring = qs
                };
                OneTimeLinks.InsertOnSubmit(ot);
                SubmitChanges();
                list.Add(qs, ot);
            }
            string url = Util.URLCombine(CmsHost, "/OnlineReg/RegisterLink/{0}".Fmt(ot.Id.ToCode()));

            if (showfamily)
            {
                url += "?showfamily=true";
            }
            return(url);
        }
Exemplo n.º 2
0
        private string DoCreateUserTag(string CmsHost, EmailQueueTo emailqueueto)
        {
            User user = (from u in Users
                         where u.PeopleId == emailqueueto.PeopleId
                         select u).FirstOrDefault();

            if (user != null)
            {
                user.ResetPasswordCode    = Guid.NewGuid();
                user.ResetPasswordExpires = DateTime.Now.AddHours(Setting("ResetPasswordExpiresHours", "24").ToInt());
                string link = Util.URLCombine(CmsHost, "/Account/SetPassword/" + user.ResetPasswordCode.ToString());
                SubmitChanges();
                return(@"<a href=""{0}"">Set password for {1}</a>".Fmt(link, user.Username));
            }
            var ot = new OneTimeLink
            {
                Id          = Guid.NewGuid(),
                Querystring = emailqueueto.PeopleId.ToString()
            };

            OneTimeLinks.InsertOnSubmit(ot);
            SubmitChanges();
            string url = Util.URLCombine(CmsHost, "/Account/CreateAccount/{0}".Fmt(ot.Id.ToCode()));

            return(@"<a href=""{0}"">Create Account</a>".Fmt(url));
        }
Exemplo n.º 3
0
        private string VoteLinkUrl(string text,
                                   string CmsHost,
                                   EmailQueueTo emailqueueto,
                                   Dictionary <string, OneTimeLink> list,
                                   string votelink,
                                   string id,
                                   string msg,
                                   string confirm,
                                   string smallgroup,
                                   string pre)
        {
            string      qs = "{0},{1},{2},{3},{4}".Fmt(id, emailqueueto.PeopleId, emailqueueto.Id, pre, smallgroup);
            OneTimeLink ot;

            if (list.ContainsKey(qs))
            {
                ot = list[qs];
            }
            else
            {
                ot = new OneTimeLink
                {
                    Id          = Guid.NewGuid(),
                    Querystring = qs
                };
                OneTimeLinks.InsertOnSubmit(ot);
                SubmitChanges();
                list.Add(qs, ot);
            }
            string url = Util.URLCombine(CmsHost, "/OnlineReg/VoteLinkSg/{0}?confirm={1}&message={2}"
                                         .Fmt(ot.Id.ToCode(), confirm, HttpUtility.UrlEncode(msg)));

            return(url);
        }
Exemplo n.º 4
0
        private string SendSupportLinkUrl(EmailQueueTo emailqueueto, Dictionary <string, OneTimeLink> list)
        {
            string qs = "{0},{1},{2},{3},{4}".Fmt(emailqueueto.OrgId, emailqueueto.PeopleId, emailqueueto.Id, "supportlink", emailqueueto.GoerSupportId);

            OneTimeLink ot;

            if (list.ContainsKey(qs))
            {
                ot = list[qs];
            }
            else
            {
                ot = new OneTimeLink
                {
                    Id          = Guid.NewGuid(),
                    Querystring = qs
                };
                OneTimeLinks.InsertOnSubmit(ot);
                SubmitChanges();
                list.Add(qs, ot);
            }
            string url = Util.URLCombine(CmsHost, "/OnlineReg/SendLink/{0}".Fmt(ot.Id.ToCode()));

            return(url);
        }
Exemplo n.º 5
0
        private string SendLinkUrl(EmailQueueTo emailqueueto,
                                   Dictionary <string, OneTimeLink> list,
                                   string id,
                                   bool showfamily = false)
        {
            string qs = "{0},{1},{2},{3}".Fmt(id, emailqueueto.PeopleId, emailqueueto.Id,
                                              showfamily ? "registerlink2" : "registerlink");

            OneTimeLink ot;

            if (list.ContainsKey(qs))
            {
                ot = list[qs];
            }
            else
            {
                ot = new OneTimeLink
                {
                    Id          = Guid.NewGuid(),
                    Querystring = qs
                };
                OneTimeLinks.InsertOnSubmit(ot);
                SubmitChanges();
                list.Add(qs, ot);
            }
            string url = Util.URLCombine(CmsHost, "/OnlineReg/SendLink/{0}".Fmt(ot.Id.ToCode()));

            return(url);
        }
        public async Task <HttpResponseMessage> VerifyToken(string token, string phoneNumber)
        {
            long timeStepMatched = 0;
            var  user            = UserManager.Users.First(u => u.PhoneNumber == phoneNumber);
            var  otp             = new Totp(Base32Encoder.Decode(user.SinchAuthSecretKey));
            bool valid           = otp.VerifyTotp(token, out timeStepMatched, new VerificationWindow(2, 2));

            if (!valid)
            {
                return(new HttpResponseMessage(HttpStatusCode.Forbidden));
            }
            OneTimeLinks.AddLink(user.Id);
            return(new HttpResponseMessage(HttpStatusCode.OK));
        }
        public async Task <object> StatusCheck()
        {
            var userId = await SignInManager.GetVerifiedUserIdAsync();

            if (string.IsNullOrEmpty(userId))
            {
                return(Json(new { status = "Error" }));
            }
            var link = OneTimeLinks.GetByUserId(userId);

            if (link == null)
            {
                return(Json(new { status = "Waiting" }));
            }
            else
            {
                return(Json(new { status = "Ok", guid = link.Guid }));
            }
        }
Exemplo n.º 8
0
        public string DoVolReqLink(string text, string CmsHost, EmailQueueTo emailqueueto)
        {
            var          list         = new Dictionary <string, OneTimeLink>();
            const string VolSubLinkRE = "<a[^>]*?href=\"https{0,1}://volreqlink\"[^>]*>.*?</a>";
            var          re           = new Regex(VolSubLinkRE, RegexOptions.Singleline | RegexOptions.Multiline | RegexOptions.IgnoreCase);
            Match        match        = re.Match(text);

            while (match.Success)
            {
                string tag = match.Value;

                var doc = new HtmlDocument();
                doc.LoadHtml(tag);
                HtmlNode ele    = doc.DocumentNode.Element("a");
                string   inside = ele.InnerHtml;
                Dictionary <string, string> d = ele.Attributes.ToDictionary(aa => aa.Name.ToString(), aa => aa.Value);

                string qs = "{0},{1},{2},{3}"
                            .Fmt(d["mid"], d["pid"], d["ticks"], emailqueueto.PeopleId);
                OneTimeLink ot = null;
                if (list.ContainsKey(qs))
                {
                    ot = list[qs];
                }
                else
                {
                    ot = new OneTimeLink
                    {
                        Id          = Guid.NewGuid(),
                        Querystring = qs
                    };
                    OneTimeLinks.InsertOnSubmit(ot);
                    SubmitChanges();
                    list.Add(qs, ot);
                }

                string url = Util.URLCombine(CmsHost,
                                             "/OnlineReg/RequestResponse?ans={0}&guid={1}".Fmt(d["ans"], ot.Id.ToCode()));
                text  = text.Replace(tag, @"<a href=""{0}"">{1}</a>".Fmt(url, inside));
                match = match.NextMatch();
            }
            return(text);
        }
        public async Task <ActionResult> VerifyTOTP(string guid, string returnUrl)
        {
            var userId = await SignInManager.GetVerifiedUserIdAsync();

            if (string.IsNullOrEmpty(userId))
            {
                return(View("Error"));
            }
            if (OneTimeLinks.VerifyLink(userId, Guid.Parse(guid)))
            {
                await SignInManager.SignInAsync(UserManager.FindById(userId), false, false);

                return(RedirectToLocal(returnUrl));
            }
            else
            {
                return(View("Error"));
            }
        }
Exemplo n.º 10
0
        public string RegisterLinkUrl(int orgid, int pid, int queueid, string linktype)
        {
            var    showfamily = linktype == "registerlink2";
            string qs         = "{0},{1},{2},{3}".Fmt(orgid, pid, queueid, linktype);
            var    ot         = new OneTimeLink
            {
                Id          = Guid.NewGuid(),
                Querystring = qs
            };

            OneTimeLinks.InsertOnSubmit(ot);
            SubmitChanges();
            string url = Util.URLCombine(CmsHost, "/OnlineReg/RegisterLink/{0}".Fmt(ot.Id.ToCode()));

            if (showfamily)
            {
                url += "?showfamily=true";
            }
            return(url);
        }