示例#1
0
        public HttpResponseMessage getLicense()
        {
            IEnumerable <string> headerValues;
            var authHeader = string.Empty;

            try
            {
                if (Request.Headers.TryGetValues("Authorization", out headerValues))
                {
                    authHeader = headerValues.FirstOrDefault();
                }

                var license  = new Models.License();
                var logic    = new Logic.UsersLogic();
                var authData = logic.GetAuthValues(authHeader);

                license = logic.GetLicense(authData.Username, authData.Password, authData.Domain);

                return(Request.CreateResponse(HttpStatusCode.OK, license));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "Unable to get license: " + ex.Message));
            }
        }
示例#2
0
        public HttpResponseMessage DatabaseList()
        {
            Models.DatabaseList  DatabaseList = new Models.DatabaseList();
            IEnumerable <string> headerValues;
            var nameFilter = string.Empty;
            var authHeader = string.Empty;

            try
            {
                if (Request.Headers.TryGetValues("Authorization", out headerValues))
                {
                    authHeader = headerValues.FirstOrDefault();
                }
                var domain   = "";
                var username = "";
                var password = "";
                if (authHeader != null && authHeader.StartsWith("Basic"))
                {
                    string   encodedUsernamePassword = authHeader.Substring("Basic ".Length).Trim();
                    Encoding encoding             = Encoding.GetEncoding("iso-8859-1");
                    string   usernamePassword     = encoding.GetString(Convert.FromBase64String(encodedUsernamePassword));
                    int      seperatorIndex       = usernamePassword.IndexOf(':');
                    int      domainSeperatorIndex = (usernamePassword.IndexOf('\\') + 1);
                    domain   = usernamePassword.Substring(0, domainSeperatorIndex - 1);
                    username = usernamePassword.Substring(domainSeperatorIndex, seperatorIndex - domainSeperatorIndex);
                    password = usernamePassword.Substring(seperatorIndex + 1);
                }
                else
                {
                    //Handle what happens if that isn't the case
                    return(Request.CreateResponse(HttpStatusCode.Forbidden, "Unable to return database list. Authorization header is either empty or isn't Basic."));
                }
                Logic.UsersLogic logic = new Logic.UsersLogic();
                DatabaseList = logic.GetDatabases(username, password, domain);

                return(Request.CreateResponse(HttpStatusCode.OK, DatabaseList));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "Unable to return database list: " + ex.Message));
            }
        }