Exemple #1
0
        public FormsAuthenticationCookie Unprotect(string protectedText)
        {
            if (protectedText == null)
            {
                throw new ArgumentNullException(nameof(protectedText));
            }

            FormsAuthenticationCookie _unprotect()
            {
                var bBlob = CryptoUtil.HexToBinary(protectedText);

                var cryptoProvider = AspNetCryptoServiceProvider.GetCryptoServiceProvider(_options);
                var cryptoService  = cryptoProvider.GetCryptoService();

                byte[] unprotectedData = cryptoService.Unprotect(bBlob);

                return(ConvertToAuthenticationTicket(unprotectedData));
            }

            if (_options.CacheTimeout != null)
            {
                return(_options.Cache.GetOrCreate($"Auth-Cookie-{protectedText}", ct => {
                    ct.SlidingExpiration = _options.CacheTimeout;
                    return _unprotect();
                }));
            }

            return(_unprotect());
        }
        public FormsAuthenticationCookie Unprotect(string protectedText)
        {
            if (protectedText == null)
            {
                throw new ArgumentNullException(nameof(protectedText));
            }

            var bBlob = CryptoUtil.HexToBinary(protectedText);

            var cryptoProvider = AspNetCryptoServiceProvider.GetCryptoServiceProvider(_options);
            var cryptoService  = cryptoProvider.GetCryptoService();

            byte[] unprotectedData = cryptoService.Unprotect(bBlob);

            return(ConvertToAuthenticationTicket(unprotectedData));
        }
        public string Protect(FormsAuthenticationCookie cookie)
        {
            if (cookie == null)
            {
                throw new ArgumentNullException(nameof(cookie));
            }

            var unprotectedData = ConvertToBytes(cookie);

            var cryptoProvider = AspNetCryptoServiceProvider.GetCryptoServiceProvider(_options);
            var cryptoService  = cryptoProvider.GetCryptoService();

            byte[] protectedData = cryptoService.Protect(unprotectedData);

            return(CryptoUtil.BinaryToHex(protectedData));
        }