صفحه اصلی / آموزش طراحی وب / آموزش ASP.NET / مدیریت رمزگذاری و رمزنگاری Json در ASP.Net

مدیریت رمزگذاری و رمزنگاری Json در ASP.Net

رمزگذاری و رمزنگاری

در این مقاله قصد داریم درمورد نحوه مدیریت و کنترل رمزگذاری و رمزنگاری از JSON با استفاده از Asp.Net WebMethods بحث کنیم. این مدیریت مربوط به زمان ارسال JSON از سمت کلاینت به سرور و بالعکس است. وقتی می خواهیم اشیا جاوا اسکریپت را از کلاینت به سرور بفرستیم آنها رادر قالب JSON رمزگذاری می کنیم. عملیات رمزبرداری در سرور انجام می شود پس اشیا جاوا اسکریپت می توانند به اشیاء کلاس C# تبدیل بشوند. در نظر بگیرید برای مثال باید جزئیاتی در مورد یک کارمند(employee) جمع آوری کرده و آن را به کمک یک وب متد به سمت سرور ارسال کنیم.

رمزگذاری و رمزنگاری

مدیریت رمزگذاری JSON

در ابتدا یک تابع جاوا اسکریپتی برای کارمند ایجاد می کنیم:

function Employee(name, age, address) {
    this.EmpName = name;
    this.EmpAge = age;
    this.EmpAddress = address;
}

پس از جمع آوری جزئیات مربوط به کارمند، یک نمونه از کارمند ایجاد خواهیم کرد و سپس این شی را برای C# web method می فرستیم. C# web methodمان به صورت زیر است:

[WebMethod]
public static void AddEmployee(Employee empData) {
    // empData contains the encoded Employee details
}

public class Employee {
    public string EmpName {
        get;
        set;
    }
    public Int32 EmpAge {
        get;
        set;
    }
    public string EmpAddress {
        get;
        set;
    }
}

همانطور که مشاهده می کنید کد#C کلاسی مشابه با تابع جاوا اسکرپیت دارد که وظیفه رمزبرداری از شی JSON که از سمت کلاینت فرستاده شده، را برعهده دارد. در سمت کلاینت و با استفاده از jQuery AJAX، وب متد را صدا خواهیم زد. در قسمت زیر کدهای jQuery AJAX آورده شده که نحوه فراخوانی وب متد و همچنین ارسال داده ی JSON به عنوان یک پارامتر به وب متدِ #C را نشان می دهد.

if (name && age && address) {
    var emp = new Employee(name, age, address);

    $.ajax({
        type: 'POST',
        url: 'Index.aspx/AddEmployee',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify({
            empData: emp
        }),
        success: function(reponse) {

        },
        error: function(error) {
            console.log(error);
        }
    });
}

کد بالا خوانا بوده و نیاز به توضیح ندارد. یک نمونه از Employee JavaScript function را ایجاد کرده و آن را به عنوان پارامتر به وب متد فرستاده ایم.

دو خطای رایجی که هنگام ایجاد این وب متد با آن روبرو خواهیم شد به صورت زیر است:

Invalid web service call, missing value for parameter:

این دو خطا وقتی رخ می دهد که پارامترهای JSON ارسالی با پارامترهای C# web method متفاوت باشد. در واقع اگر empData به طور مثال انتظار دریافت پارامتر empData را داشته باشد پس داده ای که از طریق jQuery AJAX فرستاده می شود حتما باید چنین پارامتری را داشته باشد.

data: JSON.stringify({ empData: emp })

خطای دومی که رخ می دهد:

Unknown web method error

اگر با خطای این چنینی روبرو شدید به احتمال زیاد نام web method اشتباه بوده و در غیر اینصورت، مانند این مثال، web method به صورت static تعریف نشده است.

اکنون، وقتی داده به عنوان شی JSON فرستاده شد به صورت خودکار در سمت سرور رمزبرداری می شود.

مدیریت رمزنگاری JSON

در هنگام ارسال داده از سرور به کلاینت، از طریق web method، داده را در قالب یک شی از #C ارسال می کنیم:

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string GetEmployee(Int32 empId) {
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    Employee emp = new Employee();
    emp.EmpName = "Roy";
    emp.EmpAge = 25;
    emp.EmpAddress = "Delhi";
    return serializer.Serialize(emp).ToString();
}

برای تبدیل JSON response به JavaScript object از JSON.parse استفاده می کنیم:

$.ajax({
    type: 'GET',
    url: 'Index.aspx/GetEmployee',
    contentType: 'application/json; charset=utf-8',
    data: {
        empId: 1
    },
    success: function(response) {
        var arr = JSON.parse(response.d);
        console.log(arr);
    },
    error: function(error) {
        console.log(error);
    }
});

نکته قابل بیان، استفاده از JavaScript serializer برای سریالیزه کردن داده های مربوط به C# Object است. این کار لازم است زیرا JSON باید در قالب مناسب برای web method قرار گیرد.

سخن پایانی

در این مقاله در مورد نحوه مدیریت و کنترل رمزگذاری و رمزبرداری از JSON بحث کردیم. در کد بالا یک برنامه ی نمونه ایجاد کردیم که فرایند رمزگذاری و رمزبرداری از JSON را نشان میدهد. این کد در GitHub در دسترس است. برای اطلاعات بیشتر در مورد JavaScript JSON نگاهی به JavaScript JSON Array بیندازید.



رمز فایل : www.mspsoft.ir , www.mspsoft.com
کانال ام اس پی سافت

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *



دوره های آنلاین ام اس پی سافت

آموزش طراحی فروشگاه اینترنتی

آموزش طراحی فروشگاه اینترنتی

طراحی سیستم مدیریت مشتریان

طراحی سیستم مدیریت مشتریان

دوره طراحی وب سایت پورتال خبری

دوره طراحی وب سایت پورتال خبری

دوره طراحی حسابداری فروشگاه

دوره طراحی حسابداری فروشگاه