ASP.NET Передача параметра с response.redirect без отображения в URL

Я перенаправляю на страницу в моем приложении asp.net, используя который передает параметр в URL.

 HttpApplication app = (HttpApplication) sender;
 HttpResponse response = app.Context.Response;
 app.Response.Redirect("~/auth/SignOn.aspx?capath=" + capath);

Есть ли способ отправить выполнение или напрямую на эту страницу и передать параметр без указания его в URL? Благодарю.

3 ответа

Решение

Параметры URL очень небезопасны. это простая строка, которая видна всем. Вы должны либо зашифровать его, либо использовать сеансы. если это идентификатор, который вы передаете в URL, вы можете использовать uniqueidentifier в качестве идентификатора.

Я думаю, что лучший и самый простой способ - отправить его через сессии.

Вы не можете скрыть значения, отправленные в строке запроса, но вы можете зашифровать значения, если хотите, чтобы они не были читаемыми. ИЛИ Вместо простого перенаправления вам придется искать другой вариант для перехода на следующую страницу.

Как передать значения между веб-страницами ASP.NET

Если ваш веб-сайт распространяется на многих компьютерах, вы должны использовать куки, чтобы избежать пропуска сессии

написать печенье

HttpCookie testCookie = new HttpCookie("capath");
    testCookie.Value = HttpUtility.UrlEncode(capath);
    Response.Cookies.Add(testCookie);

читать куки

if (Request.Cookies["capath"] != null)
    {
        HttpCookie getCookie = Request.Cookies.Get("capath");
}
Другие вопросы по тегам