//项目邀请成员验证登陆视图 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)); }
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); }