EnKamran
یک شنبه 11 دی 1390, 20:54 عصر
سلام عزیزان.
من یه مشکلی دارم در مورد اینکه کاربر بعد از لاگین کردن خیلی زود میفته بیرون، من از LINQ و Entity استفاده کردم، تایم اوت رو که 30 دقیقه بود رو هم حتی بیشتر کردم اما بعد از چند تا صفحه جابجا شدن کاربر میفته بیرون با گرید تلریک مشکل نداره ؟ آخه بیشتر گریدهام رو از تلریک استفاده کردم.
راستی رو سیستم خودم درست کار میکنه ها
کدهای وب کافنفیگ :
<authentication mode="Forms">
<forms name="MyAppCookie" path="/" loginUrl="Login.aspx" protection="All" timeout="60" defaultUrl="Admin" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
<customErrors mode="Off" />
<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false" />
<!--<sessionState timeout="1440"></sessionState>-->
</system.web>
<location path="Admin">
<system.web>
<authorization>
<deny users="?" />
<deny users="Users" />
</authorization>
</system.web>
</location>
کدهای صفحه ی ورود :
var login = (from u in DataContext.Context.Core_Users
where u.UserName == txtuid.Text && u.Password == txtPwd.Text
select u).FirstOrDefault();
if(login != null)
{
var role = (from r in DataContext.Context.Core_Roles
where r.RoleID == login.RoleID
select r).FirstOrDefault();
if(role != null)
{
string RoleName = role.RoleName;
FormsAuthenticationTicket AuthTicket = new FormsAuthenticationTicket(1, txtuid.Text, DateTime.Now, DateTime.Now.AddDays(1),false,RoleName,FormsAuthen tication.FormsCookiePath);
string encryptedTocket = FormsAuthentication.Encrypt(AuthTicket);
HttpCookie AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName,enc ryptedTocket);
Response.Cookies.Add(AuthCookie);
Response.Redirect(FormsAuthentication.GetRedirectU rl(txtuid.Text, chkRemember.Checked));
}
else
{
lblMessage.Text = "نقش شما حذف شده است";
}
}
else
{
lblMessage.Text = "نام کاربری یا کلمه عبور نادرست است.";
}
و در نهایت کدهای صفحات کنترل پنل(البته اینم بگم ها اصلا به این کدها ربطی نداره آخه کدهای اینجا رو هم برمیدارم بازم همون مشکل هست چون مستقیک از وب کانفیگ نگاه میکنه که این پوشه دسترسیش ممنوعه و کاربر هم دیگه لاگین نیست، نمیدونم فکر کنم که کاربر اعتبارشو از دست میده بعد از چند ثانیه)
if (!IsPostBack)
{
//Start Authorization Section
if (!Page.User.Identity.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
}
// End of Authorization Section
}
من یه مشکلی دارم در مورد اینکه کاربر بعد از لاگین کردن خیلی زود میفته بیرون، من از LINQ و Entity استفاده کردم، تایم اوت رو که 30 دقیقه بود رو هم حتی بیشتر کردم اما بعد از چند تا صفحه جابجا شدن کاربر میفته بیرون با گرید تلریک مشکل نداره ؟ آخه بیشتر گریدهام رو از تلریک استفاده کردم.
راستی رو سیستم خودم درست کار میکنه ها
کدهای وب کافنفیگ :
<authentication mode="Forms">
<forms name="MyAppCookie" path="/" loginUrl="Login.aspx" protection="All" timeout="60" defaultUrl="Admin" />
</authentication>
<authorization>
<allow users="*" />
</authorization>
<customErrors mode="Off" />
<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode="Never" enableViewStateMac="false" />
<!--<sessionState timeout="1440"></sessionState>-->
</system.web>
<location path="Admin">
<system.web>
<authorization>
<deny users="?" />
<deny users="Users" />
</authorization>
</system.web>
</location>
کدهای صفحه ی ورود :
var login = (from u in DataContext.Context.Core_Users
where u.UserName == txtuid.Text && u.Password == txtPwd.Text
select u).FirstOrDefault();
if(login != null)
{
var role = (from r in DataContext.Context.Core_Roles
where r.RoleID == login.RoleID
select r).FirstOrDefault();
if(role != null)
{
string RoleName = role.RoleName;
FormsAuthenticationTicket AuthTicket = new FormsAuthenticationTicket(1, txtuid.Text, DateTime.Now, DateTime.Now.AddDays(1),false,RoleName,FormsAuthen tication.FormsCookiePath);
string encryptedTocket = FormsAuthentication.Encrypt(AuthTicket);
HttpCookie AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName,enc ryptedTocket);
Response.Cookies.Add(AuthCookie);
Response.Redirect(FormsAuthentication.GetRedirectU rl(txtuid.Text, chkRemember.Checked));
}
else
{
lblMessage.Text = "نقش شما حذف شده است";
}
}
else
{
lblMessage.Text = "نام کاربری یا کلمه عبور نادرست است.";
}
و در نهایت کدهای صفحات کنترل پنل(البته اینم بگم ها اصلا به این کدها ربطی نداره آخه کدهای اینجا رو هم برمیدارم بازم همون مشکل هست چون مستقیک از وب کانفیگ نگاه میکنه که این پوشه دسترسیش ممنوعه و کاربر هم دیگه لاگین نیست، نمیدونم فکر کنم که کاربر اعتبارشو از دست میده بعد از چند ثانیه)
if (!IsPostBack)
{
//Start Authorization Section
if (!Page.User.Identity.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
}
// End of Authorization Section
}