Я пытаюсь перейти с одного веб-сайта на своем локальном хосте на второй веб-сайт на своем локальном хосте.Аутентификация и поставщик ASP.NET
У обоих сайтов есть свой провайдер членства. Я пытаюсь использовать FormsAuthorizationTicket с сайта # 1 для SSO пользователя на сайт # 2.
В настоящее время я получаю эту ошибку: System.Security.Cryptography.CryptographicException: Перетяжка недействительна и не может быть удалена
шагов, которые я взял до этого пункта включает в себя: Установке элемента для конкретных ключевых значений Установите атрибут machineKey для проверки и шифрования на «3DES» Проверено путем регистрации, что зашифрованный билет имеет такое же значение на веб-сайте №2, как он был указан на веб-сайте №1.
Мой код здесь:
*FormsAuthentication.Initialize();
FormsAuthenticationTicket newTicket = new
FormsAuthenticationTicket(1 // Ticket Version
, Login1.UserName // User Name
, DateTime.Now // Creation Date
, DateTime.Now.AddDays(1) // Expiration Date
, true // Is Persistant
, Login1.UserName); // This should be a list of Roles
string strEncyptedTicket = FormsAuthentication.Encrypt(newTicket);
HttpCookie myCookie = new HttpCookie("cryptCookie", strEncyptedTicket);
myCookie.Values.Add("username", Login1.UserName);
myCookie.Values.Add("cryptTick", strEncyptedTicket);
Response.Cookies.Add(myCookie);*
В сайте # 2 Я создал целевую страницу, чтобы проверить билет и перенаправлять на членов только страницу. Во время дешифрования я получаю указанную выше ошибку.
Вот моя целевая страница код на сайте # 2:
*FormsAuthenticationTicket fat2 = FormsAuthentication.Decrypt(Request.Cookies["cryptCookie"].Values["cryptTick"]);
MembershipUser mu = Membership.GetUser(Request.Cookies["cryptCookie"].Values["username"]);
if (mu == null)
{
lblInfo.Text += "member not found";
return;
}
Response.Redirect(@"~\MemberPages\MemberPage.aspx");*
Если кто-то имеет представление о том, чтобы помочь, я буду рад попробовать.
Мой машинный ключ определен в файле machine.config, который, как я полагаю, наследуется обоими веб-сайтами (поскольку оба находятся на моем локальном хосте). Есть ли что-то еще, что мне нужно сделать, чтобы удовлетворить это требование? \t \t –
2009-05-08 18:30:27
Это было больше наблюдения чем ответ. Если вы используете встроенный IIS в VS (это localhost: 3123/yoursite), я не думаю, что они делят файлы cookie. В конечном итоге у вас возникнет проблема с переходом домена (mysite1.com на ваш сайт3.net) –