public static async Task<LoginResult> Login(Credentials credentials) { var cookies = new CookieContainer(); var handler = new HttpClientHandler(); handler.CookieContainer = cookies; using (var client = new HttpClient(handler)) { client.BaseAddress = new Uri(serviceUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = await client.PostAsJsonAsync("/api/login", credentials); response.EnsureSuccessStatusCode(); IEnumerable<Cookie> responseCookies = cookies.GetCookies(client.BaseAddress).Cast<Cookie>(); foreach (Cookie cookie in responseCookies) { if (cookie.Name.Equals("opc.sess")) { SessionStore.GetInstance().SessionCookie = cookie; break; } } return await response.Content.ReadAsAsync<LoginResult>(); } }
public async void Login(Credentials credentials) { var result = await BackendServiceProxy.Login(credentials); if (result.Success) { if (this.LogedIn != null) { this.LogedIn(this, EventArgs.Empty); } } else { throw new Exception(result.Msg); } }