Ваша переменная "line" объявляется как кортеж, ошибка говорит вам точно, что вместо: line = (gametag,score)
это должно быть line = gametag + score
, и оно должно работать, (не уверен), не было времени чтобы проверить это для себя.
Это вызвано тем, что Вы хешируете пароли, но не установили определенные ключи в Вашем web.config. Существует "ключевой генератор" отрывок в этой статье MSDN, выполняет его дважды и пихает их в Вашем web.config как:
<system.web>
<machineKey
validationKey="<blah>"
decryptionKey="<blah>"
validation="SHA1"
decryption="AES"
/>
И это должно уладить Вас. Это похоже на это, потому что иначе Вы могли взять свою базу данных/приложение членства к другой машине, и ни один из Ваших паролей не будет работать, поскольку автоматические сгенерированные ключи машины отличались бы :-)
Было немного неловко искать фрагмент "генератор ключей" в ссылке 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"
/>