示例#1
0
        public async Task <bool> SignIn()
        {
            IsSigningIn = true;
            try
            {
                bool b = await SignInUsingIdentityManager();

                if (b)
                {
                    Portal = await ArcGISPortal.CreateAsync(App.PortalUri.Uri); //, CancellationToken.None, ((TokenCredential)_credential).Token);

                    if (Portal != null)
                    {
                        CurrentUser = await ArcGISPortalUser.CreateAsync(Portal, ((TokenCredential)_credential).UserName);
                    }

                    SetOrganizationProperties();
                    IsSigningIn = false;
                    return(true);
                }
            }
            catch (Exception ex)
            {
                IsSigningIn = false;
                var _ = App.ShowExceptionDialog(ex);
            }

            IsSigningIn = false;
            return(false);
        }
示例#2
0
        /// <summary>
        /// Initializes a <see cref="ArcGISPortalAuthenticatedContext"/>
        /// </summary>
        /// <param name="context">The OWIN environment</param>
        /// <param name="user">The ArcGIS Portal user</param>
        /// <param name="accessToken">ArcGIS Portal Access token</param>
        /// <param name="refreshToken">ArcGIS Portal Refresh token</param>
        /// <param name="host">ArcGIS Portal Host</param>
        public ArcGISPortalAuthenticatedContext(IOwinContext context, ArcGISPortalUser user, string accessToken, string refreshToken, string host)
            : base(context)
        {
            Uri hostUri = new Uri(host);

            AccessToken  = accessToken;
            RefreshToken = refreshToken;
            Id           = user.Username;
            Name         = user.FullName;
            Link         = new Uri(hostUri, "arcgis/sharing/rest/community/users/" + Id).ToString();
            UserName     = Id;
            Email        = user.Email;
        }
示例#3
0
        public async Task <IList <ArcGISPortalGroup> > GetGroups()
        {
            ArcGISPortalUser portalUser = this.CurrentUser;

            if (portalUser == null)
            {
                await Task.Delay(10000);

                portalUser = this.CurrentUser;
                if (portalUser == null)
                {
                    var r = await Task.FromResult <IList <ArcGISPortalGroup> >(null);

                    return(r);
                }
            }

            IEnumerable <ArcGISPortalGroup> groups = await this.CurrentUser.GetGroupsAsync();

            IList <ArcGISPortalGroup> results = new List <ArcGISPortalGroup>(groups);

            return(results);
        }
        public async Task <bool> SignIn(string username, string password)
        {
            IsSigningIn = true;
            _userName   = username;
            _password   = password;

            //UriBuilder builder = new UriBuilder(string.Format(App.SharingRest, App.OrganizationUrl));
            try
            {
                //IdentityManager.Credential credential = await IdentityManager.Current.GenerateTokenAsync(UriBuilder.Uri.ToString(), username, password);
                //if (credential != null && !string.IsNullOrEmpty(credential.Token)) // && credential.Token != Token)
                bool b = await SignInUsingIdentityManager(username, password);

                if (b)
                {
                    Portal = await ArcGISPortal.CreateAsync(App.PortalUri.Uri, CancellationToken.None, null, _credential.Token);

                    if (Portal != null)
                    {
                        CurrentUser = await ArcGISPortalUser.CreateAsync(Portal, _credential.UserName);
                    }

                    SetOrganizationProperties();
                    IsSigningIn = false;
                    return(true);
                }
            }
            catch (Exception ex)
            {
                IsSigningIn = false;
                var _ = App.ShowExceptionDialog(ex);
            }

            IsSigningIn = false;
            return(false);
        }