Member 12840365 Ответов: 0

Когда я вызываю его через ajax после отправки формы, он показывает ошибку как " HTTP error 405.0-метод не разрешен"


Цитата:
У меня есть проблема с веб-api для изменения pwd он работает правильно в fiddler, но когда я вызываю его через ajax после отправки формы, он показывает ошибку как " HTTP Error 405.0-Method Not Alloweд"


Что я уже пробовал:

<pre>// Cotroller
[HttpPut]
        public HttpResponseMessage Put([FromUri]string oldPwd, [FromBody]Hotel_Login Hotel_Login)
        {
            using (Hotel_ShowEntities entities = new Hotel_ShowEntities())
            {
                try
                {
                    var entity = entities.Hotel_Login.FirstOrDefault(e => e.Password == oldPwd);
                    if (entity == null)
                    {
                        return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Customer with that Password=" + oldPwd.ToString() + "not found");

                    }
                    else
                    {
                        entity.Password = Hotel_Login.Password;
                        entities.SaveChanges();
                        return Request.CreateResponse(HttpStatusCode.OK, entity);
                    }
                }
                catch (Exception ex)
                {
                    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
                }
            }

        }

//Ajax call

 $(document).ready(function () {
                $("#btnSubmit").click(function () {
                    var CurrentPwd = $("#CurrPwd").val();
                    var Newpwd = $("#NewPwd").val();
                    console.log(Newpwd);
                    $.ajax({
                        type: "Put",
                        url: "http://localhost:16580/api/ChangeForgetPass/Put?oldPwd=" + CurrentPwd,
                        contentType: "application/json",
                        dataType: "json",
                        processData: true,
                        data: '{"Password":"' + Newpwd + '"}',                      
                        success: function (s) {
                            alert("Password Changed successfully");
                        },

                    });
                });


            });

F-ES Sitecore

Не уверен, что параметры querystring работают с PUT, возможно, вам придется поместить все ваши переменные в body\data.

Richard Deeming

Итак, вы запрещаете двум пользователям иметь один и тот же пароль? Или просто изменить пароль для всех пользователей, которые используют один и тот же пароль, когда один из них меняет свой пароль?

В любом случае, это массовый сбой системы безопасности.

И разговоры о безопасности терпят неудачу, НИКОГДА храните пароли в виде простого текста!

Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хеширование паролей - все правильно[^]

Member 12840365

Я пытаюсь изменить пароль
первый пользователь введет старый пароль
код проверит, существует ли этот старый пароль в базе данных
если этот старый пароль существует в базе данных, то он изменит новый пароль, введенный пользователем через HTML-форму

0 Ответов