Esempio n. 1
0
        //项目邀请成员验证登陆视图
        public ViewResult InviteLogOn()
        {
            var qsDict    = new Dictionary <string, string>(); //Request.QueryString
            var encodeStr = Request.QueryString[InviteQuery];

            //Log.Info("InviteQuery EncodedStr: " + encodeStr);

            var qsBytes = Convert.FromBase64String(encodeStr);
            var qsStr   = Encoding.UTF8.GetString(qsBytes);

            //Log.Info("InviteQuery: " + qsStr);

            qsStr = qsStr.Replace("%2B", "+").Replace("%2b", "+");

            //Log.Info("InviteQuery Decoded: " + qsStr);

            var qsArray = qsStr.Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var s in qsArray)
            {
                var index = s.IndexOf('=');
                var k     = s.Substring(0, index);
                var v     = s.Substring(index + 1);
                qsDict.Add(k, v);
            }

            if (qsDict.ContainsKey("loginEmail") && qsDict["loginEmail"] != null)
            {
                ViewBag.loginEmail = qsDict["loginEmail"];
            }



            //解密出url参数中的参数
            //Log.Info("InviteQuery projectId: " + qsDict["projectId"]);
            int projectId = int.Parse(EncipherAndDecrypt.DecryptText(qsDict["projectId"]));
            //Log.Info("InviteQuery partyId: " + qsDict["partyId"]);
            int partyId = int.Parse(EncipherAndDecrypt.DecryptText(qsDict["partyId"]));
            //Log.Info("InviteQuery userId: " + qsDict["userId"]);
            int userId = int.Parse(EncipherAndDecrypt.DecryptText(qsDict["userId"]));
            //Log.Info("InviteQuery email: " + qsDict["email"]);
            string email = EncipherAndDecrypt.DecryptText(qsDict["email"]);
            //Log.Info("InviteQuery inviteEmail: " + qsDict["inviteEmail"]);
            string inviteEmail = EncipherAndDecrypt.DecryptText(qsDict["inviteEmail"]);

            ViewBag.email       = email;
            ViewBag.inviteEmail = inviteEmail;
            var p = new ProjectLoginViewModel
            {
                ProjectId = projectId,
                UserId    = userId,
                PartyId   = partyId
            };

            return(View(p));
        }
Esempio n. 2
0
        private static SendEmailMessage GenerateMessage(string host, string partyName, string inviteEmail, string email,
                                                        string projectName, long projectId, long userId, long partyId)
        {
            var url = host + "/Account/LoginForInvite?projectName=" + EncipherAndDecrypt.EncryptText(projectName)
                      + "&projectId=" + EncipherAndDecrypt.EncryptText(projectId.ToString())
                      + "&userId=" + EncipherAndDecrypt.EncryptText(userId.ToString())
                      + "&inviteEmail=" + EncipherAndDecrypt.EncryptText(inviteEmail)
                      + "&email=" + EncipherAndDecrypt.EncryptText(email)
                      + "&partyId=" + EncipherAndDecrypt.EncryptText(partyId.ToString());

            var partyStr = String.Empty;

            if (!String.IsNullOrEmpty(partyName))
            {
                partyStr = "作为“" + partyName + "”";
            }
            //var ssoUrl = AuthUtility.GetSSORegisterUri();
            //var dbworldHomeUrl = AuthUtility.GetHomeHost().TrimEnd('/');
            string temp = "<p>尊敬的用户,您好!</p>"
                          + "<p>有人通过【DBWorld】邀请您," + partyStr + "参与到“" + projectName + "”中,点击下方地址申请加入该项目,或者将以下地址直接复制到地址栏回车</p>"
                          + "<a href='" + HttpUtility.HtmlEncode(url) + "'>" + HttpUtility.HtmlEncode(url) + "</a>"
                          + "<p>(如无法打开链接,请复制上面的链接粘贴到浏览器地址栏完成邀请。)</p>"
                          //+ "<p>DBWorld工程云客户端下载地址:<a href='" + dbworldHomeUrl + "/intro/product/" + "'>客户端下载</a></p>"
                          //+ "<p>DBWorld工程云账号注册地址:<a href='" + ssoUrl + "'>注册账户</a></p>"
                          + "<p>感谢您对DBWorld工程云的关注!DBWorld祝您一切顺利!</p>"
                          + "<p>来自:DBWorld工程云【DBWorld】</p>";

            temp = temp.Replace("+", "%2B");//+号会解析为空所以这里转换下

            var message = new SendEmailMessage
            {
                MailTo = inviteEmail,
                Title  = "请加入" + projectName + "项目",
                Body   = temp,
                IsHtml = true
            };

            return(message);
        }