示例#1
0
        private static SecureSession CreateSession(string identifier, Instant instant = null)
        {
            if (instant == null)
            {
                instant = new Instant();
            }

            DateTime      now    = DateTime.UtcNow;
            SecureSession result = new SecureSession();

            result.Identifier   = identifier;
            result.CreationDate = now;
            result.LastActivity = now;
            result.TimeOffset   = instant.DiffInMilliseconds(now);
            result.IsActive     = true;

            AsymmetricCipherKeyPair keys = RsaKeyGen.GenerateKeyPair(DefaultKeySize);

            result.AsymmetricKey = keys.ToPem();

            AesKeyVectorPair kvp = new AesKeyVectorPair();

            result.SymmetricKey = kvp.Key.EncryptWithPublicKey(keys.Public);
            result.SymmetricIV  = kvp.IV.EncryptWithPublicKey(keys.Public);

            result.Save();
            return(result);
        }
示例#2
0
 public ActionResult Update(Bam.Net.ServiceProxy.Secure.SecureSession dao)
 {
     try
     {
         dao.Save();
         return(Json(new { Success = true, Message = "", Dao = dao.ToJsonSafe() }));
     }
     catch (Exception ex)
     {
         return(GetErrorResult(ex));
     }
 }
示例#3
0
        private static SecureSession CreateFromFilter(IQueryFilter filter, Database database = null)
        {
            Database db  = database ?? Db.For <SecureSession>();
            var      dao = new SecureSession();

            filter.Parameters.Each(p =>
            {
                dao.Property(p.ColumnName, p.Value);
            });
            dao.Save(db);
            return(dao);
        }