いくつかの値をlocalStorage(html5)に保存してから、VB.Netページに進むログインページがあります。保存された値を読み戻してVB変数にすることができるVBのメソッドを探しています。何か案は?
7398 次
2 に答える
2
VB.NET分離コードはサーバー上で実行されており、ブラウザーのローカルストレージAPIに直接アクセスすることはできません。
ただし、JavaScriptを使用して、ログインページの一部の非表示フィールドに簡単に入力できます。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のログインデータはユーザーがアクセス(および変更)できることに注意してください。そのため、セキュリティリスクを引き起こしていないことを確認してください。
于 2010-12-04T17:08:57.223 に答える
0
このサンプルでは、VBコードで上記の概念を使用しています。
htmlのbody要素は次のとおりです。
<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値を使用できるようになりました。
于 2013-03-08T00:46:16.867 に答える