Esempio n. 1
0
        public ActionResult New(SubmitMsgVM SubmitMsg)
        {
            #region GettingCurrentUser
            var currentUser = UserManager.FindById(User.Identity.GetUserId());
            #endregion

            #region DecryptMsg
            var record = DbContext.CryptoSettingsList.Where(x => x.User.Id == currentUser.Id).ToList();
            SubmitMsg.MsgText = MvcApplication.CBCCrypto.Decrypt(SubmitMsg.MsgText, Encoding.ASCII.GetString(record[0].Key), record[0].IV);
            #endregion

            if (ModelState.IsValid)
            {
                #region SaveMsg
                var Msg = new Message();
                Msg.From        = currentUser;
                Msg.DateCreated = DateTime.Now;
                var targetUser = UserManager.FindByEmail(SubmitMsg.ToEmail);
                if (targetUser == null)
                {
                    return(View("SendMsgResult", OperationResult.Fail));
                }
                Msg.To      = targetUser;
                Msg.MsgText = SubmitMsg.MsgText;
                DbContext.Messages.Add(Msg);
                DbContext.SaveChanges();
                #endregion
                return(View("SendMsgResult", OperationResult.Success));
            }
            else
            {
                return(View("SendMsgResult", OperationResult.Fail));
            }
        }
Esempio n. 2
0
        //GET: New Message Form
        public ActionResult New()
        {
            #region GettingCurrentUser
            var currentUser = UserManager.FindById(User.Identity.GetUserId());
            #endregion

            #region GeneratingCryptoSettings
            Random r = new Random((int)DateTime.Now.Ticks);

            var key = new byte[8];
            key = key.Select(x => (byte)r.Next(65, 91)).ToArray();
            string sKey = Encoding.ASCII.GetString(key);

            var iV = new byte[8];
            iV = iV.Select(x => (byte)r.Next(97, 123)).ToArray();
            string sIV = Encoding.ASCII.GetString(iV);

            var submitMsg = new SubmitMsgVM();
            submitMsg.Key = sKey;
            submitMsg.IV  = sIV;
            #endregion

            #region SaveCryptoSettings
            var record = DbContext.CryptoSettingsList.Where(x => x.User.Id == currentUser.Id).ToList();
            if (record.Count == 0)
            {
                DbContext.CryptoSettingsList.Add(new CryptoSettings {
                    IV = iV, Key = key, User = currentUser
                });
            }
            else
            {
                record[0].IV  = iV;
                record[0].Key = key;
            }
            DbContext.SaveChanges();
            #endregion
            return(View(submitMsg));
        }