Пример #1
0
 private IIdentity AuthenticateWithValidToken(IHttpRequestDescriptor request, Token currentToken) {
     var currentExpire = currentToken.Expire.ToUniversalTime();
     Token token;
     if (IsProlongable(request)) {
         token = TokenService.Prolongate(currentToken);
     }
     else {
         token = currentToken;
     }
     var resultExpire = token.Expire.ToUniversalTime();
     if (Logg.IsForDebug()) {
         Logg.Debug(
             new {request = request.Uri.ToString(), token = "upgrade", from = currentExpire, to = resultExpire}
                 .stringify());
     }
     var result = BuildIdentity(token);
     return result;
 }
Пример #2
0
        private Identity BuildIdentity(Token token) {
            var result = new Identity {
                Token = token,
                Name = token.User,
                IsAuthenticated = true,
                AuthenticationType = "form",
                IsAdmin = token.IsAdmin
            };
            var errormessage = "";
            var user = UserService.GetUser(token.User);

            if (null != user) {
                result.User = user;
                result.IsAdmin = user.IsAdmin;
                var userstate = UserStateChecker.GetActivityState(user);
                if (userstate != UserActivityState.Ok) {
                    result.IsError = true;
                    errormessage += userstate.ToStr() + "; ";
                }
            }
            if (!string.IsNullOrWhiteSpace(token.ImUser)) {
                var imtoken = new Token {User = token.ImUser};
                var imidentity = BuildIdentity(imtoken);
                result.ImpersonationSource = imidentity;
                if (!imidentity.IsAuthenticated) {
                    result.IsError = true;
                    errormessage += "not-auth impersonation; ";
                }
                else if (!imidentity.IsAdmin) {
                    result.IsError = true;
                    errormessage += "non-admin impersonation;";
                }
            }
            if (result.IsError) {
                result.IsAuthenticated = false;
                result.Error = new SecurityException(errormessage);
            }
            return result;
        }
Пример #3
0
 public void Performance() {
    
     CheckRate(i => {
         var token = new Token
         {
             User = "******",
             Created = new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc),
             Expire = new DateTime(2015, 1, 2, 0, 0, 0, DateTimeKind.Utc),
             Metrics = "test"
         };
         var tokenenc = (TokenEncryptor)_container.Get<ITokenEncryptor>();
         var tokenstr = tokenenc.Encrypt(token);
         var token2 = tokenenc.Decrypt(tokenstr);
     });
     
 }
Пример #4
0
 public void CanEncryptAndDecrypt() {
     var token = new Token {
         User = "******",
         Created = new DateTime(2015, 1, 1, 0, 0, 0, DateTimeKind.Utc),
         Expire = new DateTime(2015, 1, 2, 0, 0, 0, DateTimeKind.Utc),
         Metrics = "test"
     };
     var tokenenc = (TokenEncryptor)_container.Get<ITokenEncryptor>();
     Assert.AreEqual("1234567", tokenenc.Encryptor.KeySource);
     var tokenstr = tokenenc.Encrypt(token);
     Console.WriteLine(tokenstr);
     var token2 = tokenenc.Decrypt(tokenstr);
     Console.WriteLine(token2.stringify());
     Assert.AreEqual(token.stringify(), token2.stringify());
 }