我从我的MVC项目调用aspx网站并传递两个参数
在Session_start的Global.asax中,我将此参数分配给两个静态变量
protected void Session_Start(object sender, EventArgs e)
{
global.c = Request.QueryString["C"];
global.u = Request.QueryString["U"];
}
此aspx网站没有注销。 第一次正确分配值,这是从MVC传递的 但是对于下一个请求,它显示的是旧值。
例如:https://www.xxxxxx.com/aa.aspx?C=2&U=2
这次它将显示2和2
下次如果我拨打https://www.xxxxxx.com/aa.aspx?C=32&U=14
它将保留2和2。 由于没有退出,我无法使用
System.Web.Security.FormsAuthentication.SignOut();
由于会话将激活20分钟,因此该值将存在。
如何将这些参数全局存储在aspx中并用于所有页面。
Simeltaneously多个用户可以使用不同的参数访问此aspx页面。
答案 0 :(得分:1)
请先检查基本功能。
第1步:将调试器放在session_start事件上。当你第一次来
时,断点会激活https://www.xxxxxx.com/aa.aspx?C=2&U=2
第2步:现在再次点击查询字符串中的更改页面,您会注意到断点不会在时间点击。
原因:会话启动会在会话创建时点击一次,并且会在整个会话期间使用相同的值。
解决方案:转到客户端以保存一些临时值,就像您在页面加载时使用查询字符串一样。
PAGE1:分配Cookie值
https://localhost:9443/commonauth?commonAuthLogout=true&type=oidc2&sessionDataKey=7fa50562-2d0f-4234-8e39-8a7271b9b273&commonAuthCallerPath=http://localhost:8080/openidconnect/oauth2client&relyingParty=OpenidConnectWebapp
PAGE2:读取Cookie值
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Browser.Cookies)
{
//supports the cookies
Response.Cookies["MyCookies"].Value = Request.QueryString["id"];
}
else
{
//not supports the cookies
//redirect user on specific page
//for this or show messages
}
}
或
您可以关注Trigger session
希望这会对你有所帮助。