Example #1
0
        private async Task <User> GetUserInfo(AuthCredential auth)
        {
            User user    = null;
            Uri  address = new Uri(StoreFrontBaseAddres);

            using (var handler = new HttpClientHandler())
            {
                handler.CookieContainer = new CookieContainer();
                handler.CookieContainer.Add(address, new Cookie("CtxsAuthId", auth.AuthToken));
                handler.CookieContainer.Add(address, new Cookie("CsrfToken", auth.CSRFToken));
                handler.CookieContainer.Add(address, new Cookie("ASP.NET_SessionId", auth.SessionID));
                using (var client = new HttpClient(handler))
                {
                    client.BaseAddress = address;
                    client.DefaultRequestHeaders.Add("X-Citrix-IsUsingHTTPS", "yes");
                    client.DefaultRequestHeaders.Add("Csrf-Token", auth.CSRFToken);
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));

                    var response = await client.PostAsync("/Citrix/" + StoreName + "/Authentication/GetUserName", new StringContent(""));

                    if (response.IsSuccessStatusCode)
                    {
                        user = new User()
                        {
                            Credential = auth,
                            UserName   = await response.Content.ReadAsStringAsync()
                        };
                    }
                }
            }
            return(user);
        }
Example #2
0
        private AuthCredential AuthenticateUser(CookieHeaderValue cookies)
        {
            var auth    = cookies["CtxsAuthId"];
            var token   = cookies["CsrfToken"];
            var session = cookies["ASP.NET_SessionId"];

            if (auth == null || token == null || session == null)
            {
                return(null);
            }

            var credentials = new AuthCredential
            {
                AuthToken = auth.Value,
                CSRFToken = token.Value,
                SessionID = session.Value
            };

            if (!credentials.IsValid)
            {
                return(null);
            }

            return(credentials);
        }