ローカルホストの 1 つの Web サイトからローカルホストの 2 番目の Web サイトに移動しようとしています。
どちらのサイトにも、独自のメンバーシップ プロバイダーがあります。サイト #1 の FormsAuthorizationTicket を使用して、ユーザーをサイト #2 に SSO しようとしています。
現在、次のエラーが発生しています: System.Security.Cryptography.CryptographicException: パディングが無効であり、削除できません
この時点までに行った手順は次のとおりです。 要素を特定のキー値に設定する 検証と暗号化の machineKey 属性を「3DES」に設定するナンバーワンのウェブサイト。
私のコードはここにあります:
*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);*
Web サイト #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");*
誰かが助けてくれるアイデアを持っているなら、私は喜んで試してみます.