maktab
یک شنبه 28 مهر 1392, 11:47 صبح
سلام. من برای حل این مشکلم زیاد جستجو کردم ولی نمیدونم چرا باز به نتیجه نرسیدم!! البته باز تاپیک هایی دیده بودم که به نتیجه نرسیده بودن!
من ابتدا برای ورود سایتم از سیستم لاگین asp استفاده کرده بودم و به خوبی همه چی کار میکرد. ولی الان اومدم و براش یه سیستم نوشتم همه چی درست کار می کند به جز این مرا به خاطر بسپار!
برای لاگین از این کد استفاده میکنم:
var userId = User.UserId;
var userData = userId.ToString(CultureInfo.InvariantCulture);
var authTicket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(30), persistanceFlag, userData, FormsAuthentication.FormsCookiePath);
var encTicket = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
if (authTicket.IsPersistent)
{
cookie.Expires = DateTime.Now.AddMonths(6);
}
که توی اون هم زمان انتقضای کوکی رو هم تنظیم کردم. وقتی یکی لاگین میکنه و مرابخاطر بسپار رو هم انتخاب میکنه کوکی ایجاد میشه و زمانش هم درسته ولی بعد از مدتی که دوباره وارد سایت بشه دیگه لاگین نشده! درصورتی که چک کردم و کوکی هنوز هستش!! پس چرا از کوکی استفاده نمیکنه!؟
از machinekey هم توی web.config استفاده میکنم و از کد زیر:
<sessionState mode="InProc" timeout="20" cookieless="UseCookies" />
<httpCookies httpOnlyCookies="true" />
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" timeout="2880" cookieless="UseCookies" />
</authentication>
ولی باز هم بی نتیجه است! پس این ممبرشیپ دات نت از چی استفاده میکنه که درست کار میکنه؟ مگه از همین کد نیست؟
من ابتدا برای ورود سایتم از سیستم لاگین asp استفاده کرده بودم و به خوبی همه چی کار میکرد. ولی الان اومدم و براش یه سیستم نوشتم همه چی درست کار می کند به جز این مرا به خاطر بسپار!
برای لاگین از این کد استفاده میکنم:
var userId = User.UserId;
var userData = userId.ToString(CultureInfo.InvariantCulture);
var authTicket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(30), persistanceFlag, userData, FormsAuthentication.FormsCookiePath);
var encTicket = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
if (authTicket.IsPersistent)
{
cookie.Expires = DateTime.Now.AddMonths(6);
}
که توی اون هم زمان انتقضای کوکی رو هم تنظیم کردم. وقتی یکی لاگین میکنه و مرابخاطر بسپار رو هم انتخاب میکنه کوکی ایجاد میشه و زمانش هم درسته ولی بعد از مدتی که دوباره وارد سایت بشه دیگه لاگین نشده! درصورتی که چک کردم و کوکی هنوز هستش!! پس چرا از کوکی استفاده نمیکنه!؟
از machinekey هم توی web.config استفاده میکنم و از کد زیر:
<sessionState mode="InProc" timeout="20" cookieless="UseCookies" />
<httpCookies httpOnlyCookies="true" />
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" timeout="2880" cookieless="UseCookies" />
</authentication>
ولی باز هم بی نتیجه است! پس این ممبرشیپ دات نت از چی استفاده میکنه که درست کار میکنه؟ مگه از همین کد نیست؟