PDA

View Full Version : عدم ذخیره سازی کوکی کاربر وارد شده



maktab
دوشنبه 01 مهر 1392, 16:40 عصر
سلام. من دارم قسمت لاگین را درست میکنم ولی به یه مشکلی برخوردم. برای ورود از این کد استفاده میکنم:



private User SetupFormsAuthTicket(string userName, bool persistanceFlag)
{
User user;
UsersContext usersContext = new UsersContext();
user = usersContext.GetUser(userName);

var userId = user.UserId;
var userData = userId.ToString(CultureInfo.InvariantCulture);
var authTicket = new FormsAuthenticationTicket(1, //version
userName, // user name
DateTime.Now, //creation
DateTime.Now.AddMinutes(30), //Expiration
persistanceFlag, //Persistent
userData);

var encTicket = FormsAuthentication.Encrypt(authTicket);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
return user;
}

protected void btnLogin_Click(object sender, EventArgs e)
{
if (UsersContext.ValidateUser(Username.Text, Password.Text))
{
SetupFormsAuthTicket(Username.Text, true);

Page.Response.Redirect("/User/Admin.aspx");
}
}


قسمت config را هم فکر کنم به درستی تنظیم کردم. اینم کدهای اون قسمت:



<sessionState cookieless="UseCookies" regenerateExpiredSessionId="true" timeout="20" />
<authentication mode="Forms">
<forms name="AuthenticationManager" loginUrl="~/Login.aspx" slidingExpiration="true" timeout="43200">
</forms>
</authentication>


ممبرشیب و ... هم توی config تنظیم کردم. پروژه را که اجرا میکنم تا جایی که تست کردم همه چیز درست کار میکنه ولی انگار کوکی را ذخیره نمیکنه یا ممکنه مشکل دیگه ای داشته باشه. به هر حال اشکال اینجاست که کاربر را ذخیره نمیکنه و بعد از هر بار بستن پروژه بصورت کامل نیازه دوباره اطلاعات کاربر را بزنم تا لاگین بشه.
چطوری میشه این مشکل را برطرف کرد؟

قسمت لاگین asp.net را که تست کردم بعد از اینکه لاگین میکنم دوتا کوکی با این نام ها ASP.NET_SessionId و .ASPXAUTH ایجاد میکنه که یکیشون مدت داره یکی هم نه. ولی روشی که من استفاده میکنم فقط یکی را ذخیره میکنه و مدت دار هم نیست.