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); }
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); }