相关疑难解决方法(0)

表单身份验证超时与会话超时

在我的asp.net网站上,我使用asp.net表单身份验证,配置如下

<authentication mode="Forms">
    <forms loginUrl="~/Pages/Common/Login.aspx"
           defaultUrl="~/Pages/index.aspx"
           protection="All"
           timeout="30"
           name="MyAuthCookie"
           path="/"
           requireSSL="false"
           cookieless="UseDeviceProfile"
           enableCrossAppRedirects="false" >
    </forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)

我有以下问题

  1. 什么应该是会话的超时值,因为我在表单身份验证中使用滑动到期,因为哪个会话将在表单身份验证之前到期.我该如何保护它?

  2. 在formauthentication注销后,我想在logout.aspx重定向页面,但它会自动重定向到loginpage.aspx.这怎么可能?

forms asp.net session timeout asp.net-3.5

59
推荐指数
2
解决办法
10万
查看次数

如何在asp.net中增加会话超时?

我尝试使用代码来增加会话超时,但没有用,

代码是:

<sessionState mode="InProc" cookieless="true" timeout="60">
</sessionState>
Run Code Online (Sandbox Code Playgroud)

也代码在

void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Session.Timeout = 15;
}
Run Code Online (Sandbox Code Playgroud)

asp.net

18
推荐指数
1
解决办法
6万
查看次数

每次请求都会重置会话超时

无论我们是否检查会话变量,是否会在每个请求上重置会话超时?或者我们应该使用至少一个会话变量?

Ajax请求会导致重置会话超时吗?像Update Panel,jQuery ajax...

谢谢


编辑1)

HTTP Get导致重置会话超时吗?

asp.net ajax session jquery asp.net-ajax

16
推荐指数
2
解决办法
2万
查看次数

Asp.net MVC - 如何检查Ajax请求的会话是否过期

我们正在整个应用程序中使用Ajax调用 - 尝试在尝试执行任何Ajax请求时,如果会话已经过期,则尝试找到重定向到登录页面的全局解决方案.我编写了以下解决方案,从这篇文章中获取帮助 - 在ajax调用中处理会话超时

不确定为什么在我关心的事件中"HandleUnauthorizedRequest"没有被解雇.

自定义属性:

 [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
    public class CheckSessionExpireAttribute :AuthorizeAttribute
    {
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            if (filterContext.HttpContext.Request.IsAjaxRequest())
            {
                var url = new UrlHelper(filterContext.RequestContext);
                var loginUrl = url.Content("/Default.aspx");

                filterContext.HttpContext.Session.RemoveAll();
                filterContext.HttpContext.Response.StatusCode = 403;
                filterContext.HttpContext.Response.Redirect(loginUrl, false);
                filterContext.Result = new EmptyResult();
            }
            else
            {
                base.HandleUnauthorizedRequest(filterContext);
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)

在控制器操作中使用Above自定义属性如下:

 [NoCache]
 [CheckSessionExpire]
 public ActionResult GetSomething()
 {
  }
Run Code Online (Sandbox Code Playgroud)

AJAX Call(JS部分):

function GetSomething()
{
   $.ajax({
        cache: false,
        type: "GET",
        async: true,
        url: "/Customer/GetSomething",
        success: function (data) {

        },
        error: function (xhr, …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc custom-attributes expired-sessions ajax-request

7
推荐指数
1
解决办法
3222
查看次数

asp.net mvc 3应用程序中的默认sessionState是什么?

我正在考虑使用,<sessionState mode="InProc" timeout="45" />因为有些用户反复登录,我想节省一些时间.但是,在我将其添加到我的web.config文件之前,我想确保没有副作用.

我读了很多sessionState版本,虽然我已经很清楚发生了什么,但我很想知道asp.net mvc 3应用程序的默认设置是什么,因为此时sessionState我的内部没有定义system.web.

我知道应用程序可以在Session["key"]没有声明的情况下访问,尽管我试图避免在Session上加载这种类型的负载.我假设我的应用程序继承了IIS 7中的一个设置(此应用程序位于共享托管环境中).

我知道如果我使用专用数据库或服务器进行会话可能会出现问题,但这只是一个基本设置,只要这样,没什么特别的.

sessionStateasp.net mvc 3 有默认值吗?它只是被遗传了吗?web.config如果它在IIS中的其他位置定义,是否会因为覆盖它而产生副作用?

web-config session-state asp.net-mvc-3

5
推荐指数
1
解决办法
1万
查看次数