如何使用带有jquery ajax的wcf rest服务通过emailaddress检索密码

时间:2011-12-15 06:04:39

标签: jquery android wcf rest cordova

在我的phonegap android应用程序中,我想使用服务器中数据库的电子邮件地址检索密码。我使用JQuery Ajax调用了wcf Rest服务。

这是我的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 个答案:

答案 0 :(得分:1)

您确定构建一个允许您为给定用户检索密码的服务是一个好主意。这具有严重的安全隐患。

你到底想要建造什么? (应该有更好的方法来解决这个问题,而不是通过服务检索密码......,OAuth,让你的服务器处理身份验证,而无需通过网络发送密码......)