Как восстановить пароль с помощью адреса электронной почты, используя службу отдыха wcf с помощью jquery ajax - PullRequest
0 голосов
/ 15 декабря 2011

В моем приложении Android PhoneGap я хочу получить пароль, используя адрес электронной почты, из базы данных на сервере. Я позвонил в службу wcf Rest, используя JQuery Ajax.

Вот мой Iservice

[OperationContract]
[WebInvoke(UriTemplate = "RetrivalPassWord/EmailAddress={EmailAddress}", Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
string RetrivalPassWord(string EmailAddress);

Вот моя служба wcf, используемая для получения пароля по адресу электронной почты (оба находятся в базе данных MS-Sql). Моя проблема в том, что когда я устанавливаю точку останова в service1.svc, я могу получить пароль, но не могу отобразить этот пароль в JQuery.

Service1.Svc:

public string RetrivalPassWord(string EmailAddress)
    {

        Debugger.Break();
        try
        {
            DataTable dtTable = new DataTable("Report");

            using (SqlConnection connection = new SqlConnection(strConString))
            {
                using (SqlCommand cmd = new SqlCommand("[dbo].[spRetivalOf_PassWord]", connection))
                {
                    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                    {
                        connection.Open();
                        adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                        adapter.SelectCommand.Parameters.Add(new SqlParameter("@EmailAddress", EmailAddress));

                        adapter.Fill(dtTable);
                        connection.Close();
                        string data1 = dtTable.Rows[0]["credentials"].ToString();
                        return data1;



                    }
                }
            }
        }

        catch (Exception ex)
        {
            clsLog objLog = new clsLog(AppDomain.CurrentDomain.BaseDirectory + "Log\\log.txt", 0);
            objLog.Write(ex.ToString());
            //return -1;
            //return "error";
            //DataTable dt = new DataTable("Error");
            //return dt;
            return "error";
        }
    }

Мой JQuery Ajax

function RetrivalPassword() {
 $("#btn").click(function () {

            $.ajax({
                cache: false,
                async: true,
                type: "GET",
                dataType: "json",


                url: " http://localhost:49914/Service1.svc/RetrivalPassWord/EmailAddress=@EmailAddress",

                data: '{ "EmailAddress": "' + $("#email").val() + '" }',
                contentType: "application/json;charset=utf-8",

                success: function (data1) {

                    var result = eval(data1);
                    for (var property in result) {

                        alert(result[property]);
                    }


                },

                Error: function (e) { alert(e.statusText); }
            });
        });
    }

Пожалуйста, ведите меня.

1 Ответ

1 голос
/ 15 декабря 2011

Вы уверены, что это хорошая идея - создать сервис, который позволит вам восстановить пароль для данного пользователя. Это имеет серьезные последствия для безопасности.

Что именно вы пытаетесь построить? (должен быть лучший способ решить эту проблему, а не извлекать пароли по службам ..., OAuth, позволяя вашему серверу обрабатывать аутентификацию без отправки пароля по сети ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...