Example #1
0
        public async Task <TResult> IsValidHealthVaultAccount <TResult>(OnlineIdServiceTicket ticket, CancellationToken cancelToken)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket");
            }

            var      method   = new IsValidHealthVaultAccount(m_client, ticket.Value, typeof(TResult));
            Response response = await method.ExecuteAsync(cancelToken);

            return((TResult)response.GetResult());
        }
Example #2
0
        public async Task <CreateAuthTokensWithTicketResponse> CreateAuthTokensWithTicketAsync(
            OnlineIdServiceTicket ticket,
            CancellationToken cancelToken)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket");
            }

            var      method   = new CreateAuthTokensWithTicket(m_client, ticket.Value);
            Response response = await method.ExecuteAsync(cancelToken);

            return((CreateAuthTokensWithTicketResponse)response.GetResult());
        }
Example #3
0
        public async Task <CreateAccountWithTicketResponse> CreateAccountAsync(OnlineIdServiceTicket ticket, object createAccountPersonInfo, CancellationToken cancelToken)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket");
            }

            if (createAccountPersonInfo == null)
            {
                throw new ArgumentNullException("createAccountPersonInfo");
            }

            var      method   = new CreateAccountWithTicket(m_client, ticket.Value, createAccountPersonInfo);
            Response response = await method.ExecuteAsync();

            return((CreateAccountWithTicketResponse)response.GetResult());
        }
Example #4
0
        public async Task <AppProvisioningInfo> CreateApplicationAsync(OnlineIdServiceTicket ticket, AppInfo appInfo, CancellationToken cancelToken)
        {
            if (ticket == null)
            {
                throw new ArgumentNullException("ticket");
            }

            if (appInfo == null)
            {
                throw new ArgumentNullException("appInfo");
            }

            var      method   = new CreateApplicationWithTicket(m_client, ticket.Value, appInfo.InstanceName);
            Response response = await method.ExecuteAsync(cancelToken);

            return((AppProvisioningInfo)response.GetResult());
        }
Example #5
0
        public async Task <AuthResult> AuthAsync(string startUrl, string endUrlPrefix)
        {
            AuthResult result = new AuthResult(WebAuthenticationStatus.UserCancel);
            Uri        start  = null;

            OnlineIdServiceTicketRequest[] tickets = new OnlineIdServiceTicketRequest[]
            {
                new OnlineIdServiceTicketRequest(
                    new Uri(startUrl).Host,
                    String.IsNullOrEmpty(LiveIdAuthPolicy)
                        ? ServiceDefinition.DefaultLiveIdAuthPolicy
                        : LiveIdAuthPolicy)
            };

            try
            {
                var          onlineIdAuthenticator = new OnlineIdAuthenticator();
                UserIdentity useridentity          =
                    await onlineIdAuthenticator.AuthenticateUserAsync(tickets, CredentialPromptType.PromptIfNeeded);

                if (useridentity != null && useridentity.Tickets != null && useridentity.Tickets.Count > 0)
                {
                    OnlineIdServiceTicket ticket = useridentity.Tickets.First();
                    start = new Uri(startUrl + WebUtility.UrlEncode("&" + ticket.Value) + "&mobile=true");
                }
            }
            catch (TaskCanceledException)
            {
                result.Status = WebAuthenticationStatus.UserCancel;
            }
            catch
            {
                start = new Uri(startUrl + "&mobile=true");
            }

            if (start != null)
            {
                WebAuthenticationResult webAuthResult = (await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, start, new Uri(endUrlPrefix)));
                result = new AuthResult(webAuthResult);
            }

            return(result);
        }