コード例 #1
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;
            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string email = inputData.Value<string>(@"email") ?? "";
            string password = inputData.Value<string>(@"password") ?? "";

            Response.ContentType = @"application/json";

            Int64 SupplierId;
            AppMembership.AppUserAuthenticateResults res = AppMembership.AuthenticateAppSupplier(email, password, out SupplierId);
            switch (res)
            {
                case AppMembership.AppUserAuthenticateResults.Success:
                    {
                        List<object> SupplierStatus = new List<object>();
                        AppSupplierAuthToken at = AuthTokens.GenerateAuthTokenForAppSupplierId(SupplierId, 0);

                        try
                        {
                            AppMembership.AppSupplierLoggedInAction(SupplierId, out SupplierStatus);
                        }
                        catch { }

                        using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                        {
                            using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                            {
                                jsonWriter.WriteStartObject();

                                jsonWriter.WritePropertyName(@"access_token");
                                jsonWriter.WriteValue(AuthTokens.AccessToken(at));

                                jsonWriter.WritePropertyName(@"user_id");
                                jsonWriter.WriteValue(SupplierId);

                                jsonWriter.WritePropertyName(@"status");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[0] : false);

                                jsonWriter.WritePropertyName(@"allow_change_status_join_bids");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[1] : false);

                                jsonWriter.WritePropertyName(@"is_auto_join_bid");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[2] : false);
                                
                                jsonWriter.WritePropertyName(@"is_service_supplier");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[4] : false);

                                jsonWriter.WritePropertyName(@"max_winning_num");
                                jsonWriter.WriteValue(SupplierStatus.Count > 0 ? SupplierStatus[3] : 0);

                                jsonWriter.WriteEndObject();
                            }
                        }
                    }
                    break;
                default:
                case AppMembership.AppUserAuthenticateResults.LoginError:
                    {
                        RespondBadRequest(Response);
                    }
                    break;
                case AppMembership.AppUserAuthenticateResults.NotVerified:
                    {
                        RespondError(Response, HttpStatusCode.Forbidden, @"not-verified");
                    }
                    break;
                case AppMembership.AppUserAuthenticateResults.NoMatch:
                    {
                        RespondError(Response, HttpStatusCode.Forbidden, @"no-match");
                    }
                    break;
                case AppMembership.AppUserAuthenticateResults.Locked:
                    {
                        RespondError(Response, HttpStatusCode.Forbidden, @"locked");
                    }
                    break;
            }
        }
コード例 #2
0
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            JObject inputData = null;

            try
            {
                using (StreamReader reader = new StreamReader(Request.InputStream))
                {
                    using (JsonTextReader jsonReader = new JsonTextReader(reader))
                    {
                        inputData = JObject.Load(jsonReader);
                    }
                }
            }
            catch
            {
                RespondBadRequest(Response);
            }

            string email    = inputData.Value <string>(@"email") ?? "";
            string password = inputData.Value <string>(@"password") ?? "";

            Response.ContentType = @"application/json";

            Int64 AppUserId;

            AppMembership.AppUserAuthenticateResults res = AppMembership.AuthenticateAppUser(email, password, out AppUserId);
            switch (res)
            {
            case AppMembership.AppUserAuthenticateResults.Success:
            {
                AppUserAuthToken at = AuthTokens.GenerateAuthTokenForAppUserId(AppUserId, 0);

                try
                {
                    AppMembership.AppUserLoggedInAction(AppUserId);
                }
                catch { }

                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();

                        jsonWriter.WritePropertyName(@"access_token");
                        jsonWriter.WriteValue(AuthTokens.AccessToken(at));

                        jsonWriter.WritePropertyName(@"user_id");
                        jsonWriter.WriteValue(AppUserId);

                        Int64?cityId = AppUser.FetchByID(AppUserId).CityId;
                        jsonWriter.WritePropertyName(@"is_city_exists");
                        jsonWriter.WriteValue(cityId != null && cityId != 0);

                        jsonWriter.WriteEndObject();
                    }
                }
            }
            break;

            default:
            case AppMembership.AppUserAuthenticateResults.LoginError:
            {
                RespondBadRequest(Response);
            }
            break;

            case AppMembership.AppUserAuthenticateResults.NotVerified:
            {
                RespondError(Response, HttpStatusCode.Forbidden, @"not-verified");
            }
            break;

            case AppMembership.AppUserAuthenticateResults.NoMatch:
            {
                RespondError(Response, HttpStatusCode.Forbidden, @"no-match");
            }
            break;

            case AppMembership.AppUserAuthenticateResults.Locked:
            {
                RespondError(Response, HttpStatusCode.Forbidden, @"locked");
            }
            break;
            }
        }