ASP.NET で Web サイトを開発しました。これで認証を行います。
認可は別の Web サービスによって行われます。Web サービスからの回答が成功の場合、チケットを作成します。
var ticket = new FormsAuthenticationTicket(1, param.Login, DateTime.Now, DateTime.Now.AddDays(1), false, string.Empty, FormsAuthentication.FormsCookiePath);
var encTicket = FormsAuthentication.Encrypt(ticket);
var AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName)
{
Value = encTicket,
Expires = DateTime.Now.AddDays(1)
};
Response.Cookies.Set(AuthCookie);
このコードは認証 Cookie を追加しました。しかし、前のコードの後に次の文字列を追加すると:
Response.Redirect("<redirect address>");
リダイレクト後に Cookie が消えます。
なぜそれが起こったのですか?
認証の web.config 部分は次のとおりです。
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="~/login.ashx" />
</authentication>