내가 만들고있는 웹 사이트에 양식 인증을 사용하고 있으며 인증 쿠키를 삭제하거나 만료시킬 수 없다는 점을 제외하고는 제대로 작동합니다. 몇 가지 방법을 시도했지만 그 중 아무 것도 작동하지 않는 것 같습니다. 다음은 쿠키를 만드는 방법입니다.ASP.NET Formauthentication.Signout() not working
FormsAuthentication.SetAuthCookie(model.userName, false);
HttpCookie cookie = new HttpCookie("user");
Response.Cookies["user"].Value = model.userName;
이제 두 번째 쿠키는이 클라이언트의 요청에 따라 사이트의 내부 동작의 일부에 사용되는, 실제 authcookie 없습니다. 다음 부분은 쿠키를 삭제하려고 시도한 여러 가지 사항입니다.
FormsAuthentication.SignOut();
Roles.DeleteCookie();
Session.Clear();
//Response.Cache.SetExpires(DateTime.Now);
//foreach (var cookie in Request.Cookies.AllKeys)
//{
// Request.Cookies.Remove(cookie);
//}
//foreach (var cookie in Response.Cookies.AllKeys)
//{
// Response.Cookies.Remove(cookie);
//}
//Session.Abandon();
//// clear authentication cookie
HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Path = FormsAuthentication.FormsCookiePath;
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);
HttpCookie cookie = Request.Cookies["user"];
string userName = cookie.Value;
cookie.Expires.AddDays(-30);
//HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
//cookie2.Expires = DateTime.Now.AddYears(-1);
//Response.Cookies.Add(cookie2);
//HttpCookie cookie = Request.Cookies["user"];
//cookie.Expires = DateTime.Now.AddDays(-1d);
//HttpCookie user = Request.Cookies["user"];
//role.Expires = DateTime.Now.AddDays(-1d);
//Response.Cookies["user"].Value = null;
Session.Abandon();
난 그냥 잘라 거기에 전체 일을 붙여, 그 중 일부는 현재 주석 있지만 일부 지점과 시간에 나는 쿠키를 제거하는 코드에서 각각의 방법을 사용하려고했습니다. 이러한 시도 중 일부는 제가 잠시 동안이 일을 해왔 기 때문에 추측이었습니다. 마지막으로 여기 내 web.config의 인증 섹션입니다.
<authentication mode="Forms" >
<forms loginUrl="~/login" timeout="90" name=".ASPXFORMS" />
</authentication>
내가 잘못하고있는 것에 대한 의견을 보내 주시면 감사하겠습니다.