Доступ к сохраненному значению js localStorage в VB.Net - PullRequest
2 голосов
/ 05 октября 2010

У меня есть страница входа, которая хранит несколько значений в localStorage (html5), а затем переходит на страницу VB.Net.Я ищу метод в VB, который может прочитать эти сохраненные значения и сделать их переменными VB.Есть идеи?

Ответы [ 2 ]

1 голос
/ 04 декабря 2010

Кодовый компонент VB.NET работает на сервере и не имеет прямого доступа к API локального хранилища браузера.

Однако вы можете легко заполнить некоторые скрытые поля на странице входа в систему, используя JavaScript, который будет опубликован при отправке и может быть прочитан из-за кода .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 могут быть доступны (и изменены) пользователем, поэтому убедитесь, что вы не создаете угрозу безопасности.

0 голосов
/ 08 марта 2013

В этом примере используется вышеуказанная концепция с кодом 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.

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