PDA

View Full Version : مشکل ماندن کاربر در کنترل پنل(مهم)



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
}

mahmood1000
دوشنبه 12 دی 1390, 00:12 صبح
دوست عزیز شما سایت رو آپلود کردی و بعد از آپلود این اتفاق میوفته؟
یا اینکه در حالت لوکال؟
اگر سایت رو آلپود کردی و این اتفاق میوفته این مشکل مربوط به پل مدیریت هاست شما برمیگرده.
شما باید تایم Session رو اونجا افزایش بدی.

EnKamran
دوشنبه 12 دی 1390, 00:55 صبح
آره دقیقا منم از همین تاجب میکنم آخه تو وب کانفیگ من زمان رو تایین میکنم اما هیچ تاثیری نداره.
این مشکل هم تو لوکال به هیچ وجه ندارم تو هاست اینطوریه.
تو کنترل پنل هاست همچین چیزی ندارم، در ضمن کدهای من رودید ؟ من از Session استفاده نکردمها

fakhravari
دوشنبه 12 دی 1390, 01:17 صبح
<sessionState mode="SQLServer"
cookieless="true "
regenerateExpiredSessionId="true "
timeout="30"
sqlConnectionString="Data Source=MySqlServer;Integrated Security=SSPI;"
stateNetworkTimeout="30"/>

EnKamran
دوشنبه 12 دی 1390, 01:40 صبح
این که اصلا جواب نداد کلی ارور داد همه خصوصیاتشو حذف کردم بازم نشد :( آخه دیگه حالت دیفالت تایم اوتم نباید 50 ثانیه باشه که :( این یه مشکل دیگه داره :(
بجای اون ریدایرکت به منوی لاگین یه Response.Write(Not Loge in") نوشتم دیدم هر کاری میکنم هر صفحه ای عوض میکنم میگه لاگین نیستم :(

دوستان شک ندارم که از همین تایم اوت هست که کاربر میفته بیرون.
توی وب کانفیگ که هر کاری کردم نشد اصلا انگار نه انگار که تایم اوت رو زیاد می کنم از تو کنترل پنل هاست چطور این کارو کنم نداره که :( از ایران هاست گرفتم هاست رو کنترل پنلشم WebsitePanel هست

vراستی به یه نکته ای اشاره کنم ها همه ی این تایم اوت ها مال زمانیه که کاربر کاری نکنه و آی دی ال ای بمونه اما من حتی بی کار هم نمیمونم ! یعنی در حال کار کردن(رفتن به صفحه های دیگه و کلیک روی دکمه ها) میفتم بیرون :-(

fakhravari
دوشنبه 12 دی 1390, 03:00 صبح
کلا ممبرشیپ وقتی لوگین میکنه یه کاربر سشن آن فعال میشه.
تنظیمات خای نداره یا من نمیدونم ولی سشن تایم اوت به این شکل

<sessionState mode="Off|InProc|StateServer|SQLServer" cookieless="true|false" timeout="number of minutes" stateConnectionString="tcpip=server:port" sqlConnectionString="sql connection string" stateNetworkTimeout="number of seconds"/>


http://msdn.microsoft.com/en-us/library/h6bb9cz9%28v=vs.71%29.aspx
http://msdn.microsoft.com/en-us/library/ms178581.aspx
http://msdn.microsoft.com/en-us/library/ms972429.aspx

EnKamran
دوشنبه 12 دی 1390, 03:08 صبح
آقا فهمیدم خودم :
1 باید MachinKey اضافه میکردم
2 باید اسم کوکی رو عوض میکردم

newsoft
جمعه 23 دی 1390, 15:10 عصر
آقا فهمیدم خودم :
1 باید MachinKey اضافه میکردم
2 باید اسم کوکی رو عوض میکردم


یه کم بیشتر توضیح میدی من هم دقیقا همین مشکلو دارم