0

私は Web アプリケーションを構築しています。ユーザーがサインインすると、最初に資格情報がデータベースに対して検証されます。資格情報が正しい場合、FormsAuthenticationTicket が作成されます。次に、そのチケットから Cookie が作成されます。Expires および Path プロパティが設定されます。下記参照。

FormsAuthenticationTicket ticket=new FormsAuthenticationTicket(1, model.User.UserName, 
DateTime.Now, DateTime.Now.AddHours(2), RememberMeCheckBox.Checked,
model.User.Id.ToString()+" "+model.User.UserType.ToString());
string cookieStr = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieStr);
cookie.Expires=ticket.Expiration; 
cookie.Path = FormsAuthentication.FormsCookiePath;
Response.Cookies.Add(cookie);
Response.Redirect("DummyForm.aspx");

そして、応答を新しいページにリダイレクトすると、Page_Load イベントで Cookie の存在がチェックされます。

HttpCookie cookie=HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookiePath];
if(cookie!=null)
{
    //Do stuff
}
else
{
  //Do other stuff
}

アプリケーションを実行すると、cookie 変数が null のように動作します。私が省略したものはありますか?よろしくお願いします。

cookie.Domain="localhost";
cookie.Name="My auth cookie";

また、web.config でドメイン プロパティを localhost に設定します。しかし、それでもうまくいきません。Google の開発者ツールを使用して Cookie を確認しましたが、そこには表示されません。

4

0 に答える 0