Я вытаскиваю 500 результатов поискового запроса в webservice; Я храню их в сеансе для этого пользователя, поэтому pagnation не вызывает дальнейших вызовов.Как сохранить хэш с результатами поиска?
Что я хочу сделать, это объединить параметры в одну длинную строку и хешировать их, чтобы у меня был быстрый хэш для проверки.
в PHP это будет выглядеть примерно так ...
<?php
$_SESSION["shash"] = md5($_GET['x'] . $_GET['y'] . $_GET['z']);
?>
Совершено Лениво в любом случае.
Так в C# У меня есть ...
#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
И видимо не по умолчанию MD5 класса построен в так что я уже использовал один от другого сайта.
#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
Не работает должным образом. rarRef находится в оригинале (общедоступный индекс ActionResult (строка rarREF)) Есть ли более быстрый способ, так как это должно быть быстрым. Может ли Base64 кодировать его?
ваш php-код не появился ... – Jason
Как он не работает «правильно» – djna
@djna: Darn-jus случайно помечен вашим комментарием вместо того, чтобы его перенести из-за мобильного просмотра и толстых пальцев. Сожалею! –