2013-05-28 20 views
6

Ich bin auf eine Seite in meiner asp.net-Anwendung umleiten, mit der einen Parameter in der URL übergeben.ASP.NET Passing-Parameter mit response.redirect ohne in URL angezeigt

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

Gibt es eine Möglichkeit der Ausführung oder direkt an der Seite zu senden und die paremeter passieren, ohne es in der URL zeigt? Vielen Dank.

+0

können Sie –

+0

verwenden Sitzung verwenden sollten Sie können Hilfe von Session für das verwenden oder Sie können den Querystring-Parameter Encrypt/Decrypt verwenden, um vollständige Sicherheit durchzuführen. –

+1

@RameshRams Thanks –

Antwort

4

URL-Parameter zu navigieren sind sehr unsicher. Es ist eine einfache Zeichenfolge, die für jeden sichtbar ist. Sie sollten es entweder verschlüsseln oder Sitzungen verwenden. Wenn es sich um eine ID handelt, die Sie in der URL übergeben, können Sie uniqueidentifier als ID verwenden.

Ich denke, der beste und einfachste Weg ist, es über Sessions zu senden.

3

Sie kann nicht verstecken Werte in Abfragezeichenfolge gesendet, aber Sie können die Werte verschlüsseln, wenn Sie sie nicht lesbar sein möchten. Oder anstelle von einfacher Umleitung werden Sie suchen andere Option zur nächsten Seite

How to: Pass Values Between ASP.NET Web Pages

0

, wenn Sie Webseite in vielen Computer verteilt hat, Sie Cookies, um ungültig Sitzung Fehl

Schreib Cookie

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

lesen Cookie

if (Request.Cookies["capath"] != null) 
    { 
     HttpCookie getCookie = Request.Cookies.Get("capath"); 
} 
+0

Cookies sind unzuverlässig und "Benutzer" können sie ausschalten. – GlennG