HttpContext.Current.Response.Redirect пытается отправить пользователей в неправильное место - PullRequest
1 голос
/ 12 мая 2011

У меня есть фрагмент кода, который перенаправляет пользователей на страницу, когда время их сеанса истекает:

void Session_Start(object sender, EventArgs e) 
{
    // Code that runs when a new session is started
    string szCookieHeader = HttpContext.Current.Request.Headers["Cookie"];
    if ((null != szCookieHeader) && (szCookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
    {
        HttpContext.Current.Response.Redirect("SessionTimeout.aspx");
    }
}

Проблема заключается в том, что IIS не может найти SessionTimeout.aspx, потому что он ищет неправильныйplace:

The file '/site/site/site/site/site/site/Site/SessionTimeout.aspx' does not exist.

Со временем все больше и больше уровней "/ site /" добавляются.Я могу устранить проблему, создав дерево «... / site / site / ...» и поместив в каждый файл SessionTimeout.aspx, но это, очевидно, не является истинным решением.

Кто-нибудь знает, чтопроисходит?

Ответы [ 2 ]

6 голосов
/ 12 мая 2011

Вы пытались использовать ~?

HttpContext.Current.Response.Redirect("~/SessionTimeout.aspx");

, которое будет разрешено во время выполнения с полным URL вашего сайта.

5 голосов
/ 12 мая 2011

Ваше перенаправление относительно текущей страницы. Добавьте ~ / к URL, чтобы он смотрел в корне сайта.

Ваш редирект должен выглядеть так:

 HttpContext.Current.Response.Redirect("~/SessionTimeout.aspx");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...