Esempio n. 1
0
        public string Build(Model.Credentials creds)
        {
            if (!new DatabaseCredentialsValidator(_DBContext).IsValid(creds))
            {
                throw new AuthenticationException();
            }
            var tokenByUser = _DBContext.Token.FirstOrDefault(u => u.User.Username.Equals(creds.Username));

            if (tokenByUser != null)
            {
                if (new DatabaseTokenValidator(_DBContext).IsExpired(tokenByUser))
                {
                    _DBContext.Token.Remove(tokenByUser);
                    _DBContext.SaveChanges();
                }
                else
                {
                    return(tokenByUser.Token1);
                }
            }

            var token = BuildSecureToken(TokenSize);
            var user  = _DBContext.User.SingleOrDefault(u => u.Username.Equals(creds.Username, StringComparison.CurrentCultureIgnoreCase));

            _DBContext.Token.Add(new Token {
                Token1 = token, User = user, CreateTime = DateTime.Now
            });
            _DBContext.SaveChanges();
            return(token);
        }
Esempio n. 2
0
        public bool IsValid(Model.Credentials creds)
        {
            var user     = _DBContext.User.SingleOrDefault(u => u.Username.Equals(creds.Username, StringComparison.CurrentCultureIgnoreCase));
            var tokenApi = _DBContext.TokenApi.SingleOrDefault(t => t.TokenApi1.Equals(creds.TokenApi));

            return(user != null && String.Equals(user.Password, creds.Password) && tokenApi != null);
        }
        [Route("/api/forge/callback/oauth")] // see Web.Config FORGE_CALLBACK_URL variable
        public async Task <IActionResult> OAuthCallbackAsync(string code)
        {
            if (string.IsNullOrWhiteSpace(code))
            {
                return(Redirect("/"));
            }
            // create credentials form the oAuth CODE
            Model.Credentials credentials = await Model.Credentials.CreateFromCodeAsync(code, Response.Cookies);

            return(Redirect("/"));
        }
Esempio n. 4
0
        public string Build(Model.Credentials creds)
        {
            if (!new DatabaseCredentialsValidator(_DbContext).IsValid(creds))
            {
                throw new AuthenticationException();
            }
            var token = BuildSecureToken(TokenSize);
            var user  = _DbContext.Users.SingleOrDefault(u => u.Username.Equals(creds.User, StringComparison.CurrentCultureIgnoreCase));

            _DbContext.Tokens.Add(new Token {
                Text = token, User = user, CreateDate = DateTime.Now
            });
            _DbContext.SaveChanges();
            return(token);
        }
        public async Task <IList <Model.TreeNode> > GetOSSAsync(string id)
        {
            IList <Model.TreeNode> nodes = new List <Model.TreeNode>();
            dynamic oauth = await OAuthController.GetInternalAsync();

            // 3LO
            //string oauth = objCredentials.TokenInternal;
            objCredentials = await Model.Credentials.FromSessionAsync(base.Request.Cookies, Response.Cookies);

            if (objCredentials == null)
            {
                return(null);
            }

            if (id == "#") // root
            {
                // in this case, let's return all buckets
                BucketsApi appBckets = new BucketsApi();
                appBckets.Configuration.AccessToken = oauth.access_token;
                // 3LO
                //appBckets.Configuration.AccessToken = oauth;
                // to simplify, let's return only the first 100 buckets
                dynamic buckets = await appBckets.GetBucketsAsync(sRegion, iBucketNumber);

                foreach (KeyValuePair <string, dynamic> bucket in new DynamicDictionaryItems(buckets.items))
                {
                    nodes.Add(new Model.TreeNode(bucket.Value.bucketKey, bucket.Value.bucketKey.Replace(objCredentials.ClientId + "-", string.Empty), "bucket", true));
                }
            }
            else
            {
                // as we have the id (bucketKey), let's return all
                ObjectsApi objects = new ObjectsApi();
                objects.Configuration.AccessToken = oauth.access_token;
                // 3LO
                //objects.Configuration.AccessToken = oauth;

                var objectsList = objects.GetObjects(id);
                foreach (KeyValuePair <string, dynamic> objInfo in new DynamicDictionaryItems(objectsList.items))
                {
                    nodes.Add(new Model.TreeNode(ServiceClass.Service.Base64Encode((string)objInfo.Value.objectId),
                                                 objInfo.Value.objectKey, "object", false));
                }
            }
            return(nodes);
        }
        public async Task <AccessToken> GetPublicTokenAsync()
        {
            Model.Credentials credentials = await Model.Credentials.FromSessionAsync(Request.Cookies, Response.Cookies);

            if (credentials == null)
            {
                base.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                return(new AccessToken());
            }

            // return the public (viewables:read) access token
            return(new AccessToken()
            {
                access_token = credentials.TokenPublic,
                expires_in = (int)credentials.ExpiresAt.Subtract(DateTime.Now).TotalSeconds
            });
        }
        public bool IsValid(Model.Credentials creds)
        {
            var user = _DbContext.Users.SingleOrDefault(u => u.Username.Equals(creds.User, StringComparison.CurrentCultureIgnoreCase));

            return(user != null && Hash.Compare(creds.Password, user.Salt, user.Password, Hash.DefaultHashType, Hash.DefaultEncoding));
        }