Хешированные или Зашифрованные пароли не поддерживаются с автоматически сгенерированными ключами

Ваша переменная "line" объявляется как кортеж, ошибка говорит вам точно, что вместо: line = (gametag,score) это должно быть line = gametag + score, и оно должно работать, (не уверен), не было времени чтобы проверить это для себя.

11
задан mrtaikandi 13 February 2009 в 17:28
поделиться

2 ответа

Это вызвано тем, что Вы хешируете пароли, но не установили определенные ключи в Вашем web.config. Существует "ключевой генератор" отрывок в этой статье MSDN, выполняет его дважды и пихает их в Вашем web.config как:

<system.web>
    <machineKey  
    validationKey="<blah>"           
    decryptionKey="<blah>"
    validation="SHA1"
    decryption="AES"
    />

И это должно уладить Вас. Это похоже на это, потому что иначе Вы могли взять свою базу данных/приложение членства к другой машине, и ни один из Ваших паролей не будет работать, поскольку автоматические сгенерированные ключи машины отличались бы :-)

21
ответ дан 3 December 2019 в 04:14
поделиться

Было немного неловко искать фрагмент "генератор ключей" в ссылке MSDN, на которую ссылался Стивен Роббинс. ссылке MSDN, на которую ссылался Стивен Роббинс в своем ответе, поэтому я добавляю его сюда для быстрого ознакомления. Таким образом, это не самостоятельный ответ. Он является дополнением к принятому ответу.

ОТ MSDN

Следующий код показывает, как генерировать случайные значения ключей. Скомпилируйте код для создания консольного приложение, а затем передайте требуемый размер ключа как аргумент командной строки аргумент, выраженный в виде нужного количество шестнадцатеричных символов. Каждый байт представлен двумя шестнадцатеричными символа; поэтому, чтобы запросить 32-байтный ключ, передайте 64 в качестве аргумента командной строки аргумент. Если вы не укажете аргумент, код возвращает 128 шестнадцатеричных символов (64 байта).

using System;
using System.Text;
using System.Security;
using System.Security.Cryptography;

class App {
  static void Main(string[] argv) {
    int len = 128;
    if (argv.Length > 0)
      len = int.Parse(argv[0]);
    byte[] buff = new byte[len/2];
    RNGCryptoServiceProvider rng = new 
                            RNGCryptoServiceProvider();
    rng.GetBytes(buff);
    StringBuilder sb = new StringBuilder(len);
    for (int i=0; i<buff.Length; i++)
      sb.Append(string.Format("{0:X2}", buff[i]));
    Console.WriteLine(sb);
  }
}

Также, находится внутри , вот так:

<system.web>
    <machineKey
        validationKey=""
        decryptionKey=""
        validation="SHA1"
        decryption="AES"
/>
4
ответ дан 3 December 2019 в 04:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: