سؤال

لدي صفحة تسجيل دخول تخزن بعض القيم إلى LocalStorage (HTML5) ثم تستمر في صفحة VB.NET. أنا أبحث عن طريقة في VB يمكنها قراءة هذه القيم المخزنة وجعلها VB vars. أيه أفكار؟

هل كانت مفيدة؟

المحلول

يعمل رمز VB.NET-Behind على الخادم وليس لديه وصول مباشر إلى واجهة برمجة تطبيقات التخزين المحلية للمتصفح.

ومع ذلك ، يمكنك بسهولة ملء بعض الحقول المخفية على صفحة تسجيل الدخول ، باستخدام JavaScript ، والتي سيتم نشرها عند إرسالها ويمكن قراءتها من الكود-Behind من صفحة .NET.

شيء من هذا القبيل (لم يتم اختباره):

this.document.getElementById("HIDDEN_FIELD_ID").value = localStorage.STORED_VALUE;
...
<input type="hidden" id="HIDDEN_FIELD_ID" />
...

في صفحة .NET ، يمكن قراءة القيمة مثل:

Request.Form("HIDDEN_FIELD_ID")

(هناك طرق أخرى ، ولكن من السهل فهم هذه الطريقة.)

انتبه إلى أنه يمكن الوصول إلى بيانات تسجيل الدخول في LocalStorage (وتعديلها) من قبل المستخدم ، لذلك تأكد من عدم إنشاء مخاطر أمان.

نصائح أخرى

يستخدم هذا العينة المفهوم أعلاه مع رمز VB:

هنا عنصر الجسم HTML:

<body>
<form id="form1" runat="server">
<asp:HiddenField ID="hfLoaded" runat="server" />
<asp:HiddenField ID="hfLocalStorage" runat="server" />
</form>
<script type="text/javascript">
    // Load LocalStorage
    localStorage.setItem('strData', 'Local storage string to put into code behind');


    function sendLocalStorageDataToServer()
    {
        // This function puts the localStorage value in the hidden field and submits the form to the server.
        document.getElementById('<%=hfLocalStorage.ClientID%>').value = localStorage.getItem('strData');
        document.getElementById('<%=form1.ClientID%>').submit();
    }

    // This checks to see if the code behind has received the value. If not, calls the function above.
    if (document.getElementById('<%=hfLoaded.ClientID%>').value != 'Loaded')
        sendLocalStorageDataToServer();
</script>

هنا حدث تحميل الصفحة:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim s As String
    s = hfLocalStorage.Value

    'This next line prevents the javascript from submitting the form again.
    hfLoaded.Value = "Loaded"
End Sub

الآن الرمز الخاص بك خلف قيمة LocalStorage المتاحة لها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top