我有asp.net webforms application /我需要做的是在用户登录时更改ASP.NET_SessionId。
当用户登录时,我执行以下代码:
SessionIDManager Manager = new SessionIDManager();
string NewID = Manager.CreateSessionID(Context);
bool redirected = false;
bool IsAdded = false;
Manager.SaveSessionID(Context, NewID, out redirected, out IsAdded);
因此,SessionId正在改变之后。
但是,之后如果我写了一些会话变量,例如
Session["username"] = username;
然后在回发后我们的数据丢失或与旧的会话ID相关联。 我们有
Session["username"] == null
请问您在更改SessionId后如何写入会话变量以便数据不会丢失?
答案 0 :(得分:3)
命令“Manager.SaveSessionID”将删除旧sessionid的所有数据。 只有一种方法可以保存数据。这是手动移动数据。您可以使用以下功能登录按钮:
<link rel="import" href="./bower_components/polymer/polymer-element.html">
<link rel="import" href="./bower_components/paper-input/paper-input.html">
<link rel="import" href="./bower_components/iron-form/iron-form.html">
<dom-module id="my-form">
<template>
<b>Test</b>
<iron-form>
<form id="form" method="post" action="/save">
<paper-input name="name" value=""></paper-input>
<button type="submit">submit!</button>
</form>
</iron-form>
</template>
<script>
/**
* @customElement
* @polymer
*/
class MyForm extends Polymer.Element {
static get is() { return 'my-form'; }
static get properties() {
return { };
}
}
window.customElements.define(MyForm.is, MyForm);
</script>
</dom-module>