private async Task SetLastFmClients() { if (string.IsNullOrEmpty(LastFmUsername)) { return; } try { await _lastFmApiClientService.SetClients(LastFmUsername, LastFmApiSessionKey); if (!_lastFmApiClientService.UserApiClient.Authorized) { var url = _lastFmApiClientService.UserApiClient.AuthUrl; _browserService.Open(url); await _lastFmApiClientService.AuthorizeUserClient(); } LastFmApiSessionKey = _lastFmApiClientService.UserApiClient.SessionKey; } catch (LastFmApiException ex) { if (ex.ErrorCode == ErrorCode.UserNotLoggedIn) { _messenger.Send(new ShowDialogMessage(_messenger, MessageType.Error, "Last.FM Error", ex.Message)); LastFmUsername = string.Empty; LastFmApiSessionKey = null; return; } throw; } }
public async Task <ActionResult> Authorize() { await _lastFm.AuthorizeUserClient(1); if (!_lastFm.UserApiClient.Authorized) { return(PartialView("_LastFmAuth", new LastFmAuthViewModel(_lastFm.UserApiClient.AuthUrl, true))); } var sessionKey = _lastFm.UserApiClient.SessionKey; Response.SetCookie( new HttpCookie("SK", sessionKey) { Expires = DateTime.Now.AddDays(30), HttpOnly = true, Secure = true }); return(new HttpStatusCodeResult(HttpStatusCode.OK)); }