我们有一个广泛的经典ASP网站,我们正在寻求升级到ASP .Net(最有可能是最新版本).显然,立即升级所有页面将是一个巨大的任务,所以我们只想在ASP .Net中首先编写新页面(和页面重写).
这样做有两个障碍:
我不知道如何在ASP .Net中访问经典的ASP会话数据.这只需要设置一次,因为它永远不会被登录页面以外的任何页面修改.我宁愿对经典的ASP登录页面进行微小的更改,但这只是一个小的偏好.
ASP和ASP .Net会话必须同时超时,以保持版本差异无缝.
有人可以提供任何帮助吗?
提前致谢.
我在GoogleOauth2.js文件中有简单的代码
function storedAccsessToken(token) {
$.ajax({
type: "GET",
url: '<%=HttpContext.Current.Request.ApplicationPath %>/SaveToken.ashx?accToken=' + token,
dataType: "text",
complete: function (resp, status) {
if (status == "success" || status == "notmodified") {
if (resp.responseText != '');
alert(resp.responseText);
window.location = window.location;
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
和
function refresh() {
var akkToken = '<%=Session["googleAccToken"]%>';
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + akkToken,
data: null,
success: function (resp) {
user = resp;
alert(user.name);
},
dataType: "jsonp"
});
}
Run Code Online (Sandbox Code Playgroud)
当我把js文件放在teg头
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.8.2.min.js"></script>
<script src="Scripts/GoogleOauth2.js" type="text/javascript"></script>
</head>
Run Code Online (Sandbox Code Playgroud)
当我开始我的项目并调试js时,我看到<%= …
在我的ASP.NET Web应用程序中,我做了以下更改,通过将以下条目添加到web.config来使ASP.NET_SessionID和.ASPXAUTH Cookie安全
<httpCookies httpOnlyCookies="true" requireSSL="true" />
Run Code Online (Sandbox Code Playgroud)
并添加以下标签
<forms requireSSL ="true" />
Run Code Online (Sandbox Code Playgroud)
但我的问题是,从服务器收到的Cookie(网络 - > Cookies->方向列的值为已接收)将Secure和HttpOonly标志设置为true.使用IE 11 Developer工具调试时发现信息,但发送到服务器的Cookie数据(网络 - > Cookies->方向列的值为已发送)没有任何Secure或HttpOnly标志设置为true.
这是默认行为吗?如果是这样,为什么发送到服务器的数据没有设置Secure和HttpOnly标志?除了对配置文件所做的上述更改之外,如何设置它.
如何使用jquery在会话中存储值.我使用以下代码
var Link = '<%=Session["Link"]%>';
Run Code Online (Sandbox Code Playgroud)
从会话中获取数据.如何进行逆向过程.
问题:
I need this in my master page. so i cant use .ajax{}.
Run Code Online (Sandbox Code Playgroud)
格塔
我想知道是否可以通过一种方法来设置.NET应用程序,以设置和更新浏览器中的aspxauth和asp.net_sessionid cookie的到期时间?
从我的角度来看,Cookie的到期日期类似于1/1/0001,它告诉浏览器保留它们直到浏览器关闭(我已经使用Chrome观察到了这一点)。我想设置一个明确的时间,但是,我将需要针对每个请求更新该时间。
我正在尝试使用一些代码来做到这一点:
var timeoutMins = Session.Timeout;
if (Response.Cookies.Count > 0)
{
foreach (string s in Response.Cookies.AllKeys)
{
if (s == FormsAuthentication.FormsCookieName || s.ToLower() == "asp.net_sessionid")
{
Response.Cookies[s].Expires = DateTime.Now.AddMinutes(timeoutMins);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在global.asax End_Request事件中执行此操作,尽管这似乎不是一个好地方,因为它每页触发几次,并且您无权访问sessionstate超时;此外,它仅在登录和注销时触发,因此基本上我可以设置一次,但永远无法更新。这将导致我的用户在登录后15分钟退出,即使他们一直处于活动状态。
似乎有些地方要告诉.net处理此问题?我知道这是一个奇怪的请求,但这是该项目的安全性要求,因此我正在尝试使其正常运行!
asp.net ×3
.aspxauth ×1
.net ×1
asp-classic ×1
c# ×1
cookies ×1
javascript ×1
jquery ×1
security ×1