コード例 #1
0
        public HttpResponseMessage PostLoginUser(LoginDTO userJSON)
        {
            var responseMsg = base.PerformOperationAndHandleExceptions(() =>
             {
                 if (ModelState.IsValid)
                 {
                     var context = new ExamContext();
                     using (context)
                     {
                         var foundUser = context.Users.FirstOrDefault(u =>
                              u.Username == userJSON.Username &&
                              u.AuthCode == userJSON.AuthCode
                              );

                         if (foundUser == null)
                         {
                             throw new ArgumentOutOfRangeException("Wrong username or password");
                         }
                         else
                         {
                             string sessionKey = AddSessionKey(context, foundUser);
                             //crateREsponse
                             LoginResponseDTO user = CreateResponseLogin(foundUser, sessionKey);

                             var response = this.Request.CreateResponse(HttpStatusCode.Created, user);
                             return response;
                         }
                     }//end using
                 }//end validstate
                 else
                 {
                     var errors = String.Join(" ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));
                     var errorMessage = string.Format("User input validation failed. Errors: {0}", errors);
                     throw new ArgumentException(errorMessage);
                 }
             });

            return responseMsg;
        }
コード例 #2
0
ファイル: UserTests.cs プロジェクト: naturalna/CloudExam
        public void TestMethod2()
        {
            //create new user
            var testUser = new UserRegisterDTO()
            {
                Username = "******",
                DisplayName = "VALIDNICK",
                AuthCode = new string('b', 40)
            };
            //make the reques with httpServer
            httpServer.Post("api/users/register/", testUser);
            //username

            var testLogin = new LoginDTO()
            {
                Username = "******",
                AuthCode = new string('b', 40)
            };

            var response = httpServer.Post("api/users/login/", testLogin);

            string content = response.Content.ReadAsStringAsync().Result;
            LoginResponseDTO answer = JsonConvert.DeserializeObject<LoginResponseDTO>(content);

            string sessionKey = answer.Sessionkey;
            var headers = new Dictionary<string, string>();
            headers["X-sessionKey"] = sessionKey;

            //error from .Put request
            var threadsResponse = httpServer.Post("api/users/logout", headers);

            Assert.IsNotNull(answer.Sessionkey);
            Assert.IsTrue(HttpStatusCode.OK == threadsResponse.StatusCode);
        }