static void Main(string[] args)
        {
            Request req1 = new Request("yang", "passwwwww1", "hahah", RequestType.CreateUser, "yang");
                        
            // Test 
            AuthRequestManager authrequestmanager = new AuthRequestManager();
            authrequestmanager.EnqueueRequest(req1);
            authrequestmanager.CreateAuthManager();

            // Create another AuthManager to test if they can get the contents of the first Authmanager
            authrequestmanager.CreateAuthManager();
            authrequestmanager.CreateAuthManager();

            // Push more requests to see how the two queues handle them
            Request req2 = new Request("yu", "passwwwww2", "hoho", RequestType.CreateUser, "yu");
            Request req3 = new Request("yukan", "passwwwww3", "hehe", RequestType.CreateUser, "yukan");
            Request req4 = new Request("guokang", "passwwwww4", "huhu", RequestType.CreateUser, "guokang");
            authrequestmanager.EnqueueRequest(req2);
            authrequestmanager.EnqueueRequest(req3);
            authrequestmanager.EnqueueRequest(req4);

            Thread.Sleep(5000);
            // Now let's push some login requests
            req1 = new Request("yang", "passwwwww1", "hahah", RequestType.Authenticate, "yang");
            authrequestmanager.EnqueueRequest(req1);

            Thread.Sleep(5000);
            req1 = new Request("yang", "passwwwww1", "hahah", RequestType.Validate, "yang");
            authrequestmanager.EnqueueRequest(req1);
            authrequestmanager.EnqueueRequest(req1);
            authrequestmanager.EnqueueRequest(req1);

            // req2 = new Request("yu", "passwwwww2", "hoho", RequestType.Authenticate, "yu");
            // req3 = new Request("yukan", "passwwwww3", "hehe", RequestType.Authenticate, "yukan");
            // authrequestmanager.EnqueueRequest(req2);
            // authrequestmanager.EnqueueRequest(req3);
        }
Пример #2
0
 public SynchronizeRequest(Request m_SynRequest, int m_SynSendID, DateTime m_SynExpTime)
 {
     m_Request = m_SynRequest;
     m_SenderID = m_SynSendID;
     m_ExpTime = m_SynExpTime;
 }
Пример #3
0
 // This function is for testing only, will be removed future
 public void EnqueueRequest(Request req1)
 {
     m_RequestQueue.enQ(req1);
 }
Пример #4
0
            private void ProcessRequest(Request req, out ReturnRequest retreq, out SynchronizeRequest syncreq)
            {
                AuthImplement authimplement = new AuthImplement(m_AuthManager);
                string token = "";
                DateTime exptime = DateTime.Now;
                bool result = false;
                AuthResult authret = new AuthResult();

                switch (req.m_RequestType) {
                    case RequestType.Authenticate:
                        authret = authimplement.Authenticate(req.m_Username, req.m_Password, out token);
                        authimplement.Validate(token, out exptime);
                        req.m_Token = token;
                        break;
                    case RequestType.CreateUser:
                        authret = authimplement.CreateUser(req.m_Username, req.m_Password, token);
                        break;
                    case RequestType.IsAdmin:
                        break;
                    case RequestType.Validate:
                        result = authimplement.Validate(req.m_Token, out exptime);
                        break;
                }
                
                // Make the ReturnRequest and SynchronizeRequest object
                retreq = new ReturnRequest(authret, token, exptime, result, req.m_Signature);
                syncreq = new SynchronizeRequest(req, m_ID, exptime);
            }