Exemple #1
0
        public static bool TryParse(string input, out SimpleToken claims)
        {
            if (input == null)
            {
                claims = null;
                return(false);
            }

            var claimTokens = input.Split("&".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            if (claimTokens.Any(t => !t.Contains("=")) ||
                claimTokens.Any(string.IsNullOrEmpty))
            {
                claims = null;
                return(false);
            }

            claims = new SimpleToken(claimTokens
                                     .Select(t =>
            {
                var tt = t.Split('=');
                return(new Claim(tt[0], tt[1]));
            })
                                     .ToArray());

            return(true);
        }
        public string Find(HttpRequest request)
        {
            string      auth = request.Headers.First(h => h.Key.ToLower() == "authorization").Value;
            SimpleToken claims;

            if (SimpleToken.TryParse(auth.ToLower().Replace("bearer", "").Trim(), out claims))
            {
                return(claims.FirstOrDefault(c => c.Key == "user")?.Value);
            }

            return(null);
        }