Ich ziehe 500 Ergebnisse von einer Suchanfrage zu einem Webservice; Ich speichere diese in der Sitzung für diesen Benutzer, so dass die Anrufung keine weiteren Anrufe verursacht.Wie speichere ich einen Hash mit den Suchergebnissen?
Was ich tun möchte, ist die Parameter zusammen in einer langen Zeichenfolge zu kleben und sie zu hacken, so dass ich einen schnellen Hash habe, um gegen zu überprüfen.
in php dies etwas aussehen würde ...
<?php
$_SESSION["shash"] = md5($_GET['x'] . $_GET['y'] . $_GET['z']);
?>
Geschehen sowieso Träge.
Also in C# Ich habe ...
#region Session Check
string sCheckStr = rarREF;
string searchCheck = GetMd5Sum(sCheckStr);
if ((Session["schk"].ToString().Length > 0) && (Session["schk"].ToString() == searchCheck))
{ }
else
{
if (searchResults != null) this.mySess.SessionVariables.SearchResults = null;
Session["schk"] = searchCheck;
}
#endregion
Und anscheinend gebaut keine Standard-MD5-Klasse in so habe ich einen aus einem anderen Standort verwendet.
#region MD5 Class
static public string GetMd5Sum(string str)
{
// First we need to convert the string into bytes, which
// means using a text encoder.
Encoder enc = System.Text.Encoding.Unicode.GetEncoder();
// Create a buffer large enough to hold the string
byte[] unicodeText = new byte[str.Length * 2];
enc.GetBytes(str.ToCharArray(), 0, str.Length, unicodeText, 0, true);
// Now that we have a byte array we can ask the CSP to hash it
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(unicodeText);
// Build the final string by converting each byte
// into hex and appending it to a StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
sb.Append(result[i].ToString("X2"));
}
// And return it
return sb.ToString();
}
#endregion
Was nicht richtig funktioniert. rarRef ist im Original (öffentlicher ActionResult Index (String rarREF)) Gibt es einen schnelleren Weg, da dieser schnell sein muss. Würde Base64 Encoding es tun?
Ihr PHP-Code nicht angezeigt ... – Jason
In welcher Weise funktioniert es nicht "richtig" – djna
@djna: Darn - jus versehentlich Ihren Kommentar markiert, anstatt es zu upvoting durch mobiles Surfen und dicke Finger. Es tut uns leid! –