Ejemplo n.º 1
0
 /// <summary>
 /// Returns all logins matching the login info - generally there should only be one but in some cases
 /// there might be more than one depending on if an administrator has been editing/removing members
 /// </summary>
 /// <param name="login"></param>
 /// <returns></returns>
 public IEnumerable <IIdentityUserLogin> Find(IUserLoginInfo login)
 {
     using (var scope = ScopeProvider.CreateScope(autoComplete: true))
     {
         return(_externalLoginRepository.Get(Query <IIdentityUserLogin>().Where(x => x.ProviderKey == login.ProviderKey && x.LoginProvider == login.LoginProvider))
                .ToList()); // ToList is important here, must evaluate within uow! // ToList is important here, must evaluate within uow!
     }
 }
Ejemplo n.º 2
0
        public string GenerateCookie(IUserLoginInfo userLoginInfo)
        {
            userLoginInfo.Date = DateTime.UtcNow.AddDays(DefaultCookieTimespanInDays);
            userLoginInfo.Hmac = CalculateHmac(userLoginInfo);
            var str = JsonConvert.SerializeObject(userLoginInfo, Formatting.None);

            return(System.Net.WebUtility.UrlEncode(str));
        }
Ejemplo n.º 3
0
        private string CalculateHmac(IUserLoginInfo userLoginInfo)
        {
            var encoding = new System.Text.ASCIIEncoding();
            var bytes    = encoding.GetBytes(userLoginInfo.Date.ToString("u") + userLoginInfo.UserId);

            using (var hmacsha256 = new HMACSHA256(_hmacKey))
            {
                byte[] hashmessage = hmacsha256.ComputeHash(bytes);
                return(Convert.ToBase64String(hashmessage));
            }
        }
Ejemplo n.º 4
0
        public bool VerifyLoginInfo(IUserLoginInfo userLoginInfo)
        {
            // make sure the date is in the future, but not too far in the future
            var now = DateTime.UtcNow;

            if (now > userLoginInfo.Date || now.AddDays(MaxCookieTimespanInDays) < userLoginInfo.Date)
            {
                return(false);
            }

            if (CalculateHmac(userLoginInfo) == userLoginInfo.Hmac)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 5
0
 public IUserRegistrationInfo CreateUserRegistrationInfo(IUserInfo info, IUserLoginInfo loginInfo)
 {
     return(new UserRegistrationInfo(info, loginInfo));
 }
Ejemplo n.º 6
0
 public UserRegistrationInfo(IUserInfo info, IUserLoginInfo loginInfo)
 {
     userInfo      = info;
     userLoginInfo = loginInfo;
 }