YAF - аутентификация пользователя с главной страницы
Технические характеристики:
- MVC 4 бритвы
- C#
- IIS
- 7,5
- Использование YAF - http://yetanotherforum.net/
- .NET 4
Что происходит?
У меня есть сайт: http://www.mysite.com/ и на этом сайте я настроил YAF, и когда пользователь заходит на http://www.mysite.com/forum они попадают на форум.
Чего я хочу?
Когда пользователь входит на мой сайт, я хочу создать для него cookie-файл, чтобы при посещении http://www.mysite.com/forum пользователь автоматически заходил на форум.
Что я сделал?
Когда пользователь регистрируется на моем сайте, для него создается учетная запись YAF (работает нормально). Когда пользователь входит на мой сайт, я проверяю их подлинность и создаю файл cookie, но я также хочу создать файл cookie для форума, чтобы пользователю не приходилось входить на форум отдельно.
Чтобы создать cookie для пользователя, я делаю это (чтобы YAF обнаружил их вошедшими в систему):
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(30), true, "");
var encryptedTicket = CookieHelper.EncryptTicket(ticket);
var cookie = CookieHelper.CreateCookie(encryptedTicket, ".YAFNET_Authentication");
cookie.Path = "/";
cookie.HttpOnly = true;
CookieHelper.AddCookie(cookie);
Я ожидаю, что теперь я буду аутентифицирован, когда заеду на сайт http://www.mysite.com/forum
У кого-нибудь есть слова мудрости?
--Богатые
1 ответ
Не берите в голову...
Вот решение:
В оба файла web.config добавлен раздел с одинаковыми значениями. Это позволяет основному веб-сайту создать зашифрованный сеансовый ключ для входа в систему, который может расшифровать сайт YAF. Поместите это в раздел. Измените ключи на произвольное значение из 48 шестнадцатеричных символов (я использовал RoboForm для генерации ключей).
<machineKey validationKey="DBAEF98E532D4161826F8351C794DFD27C0F814262FD6986"
decryptionKey="DBAEF98E532D4161826F8351C794DFD27C0F814262FD6986"
validation="SHA1" decryption="AES" />
Ответ найден здесь: Авторизация пользователя YAF
Надеюсь, это поможет кому-то еще.