ورود

View Full Version : سوال: نمایش عبارت پرانتزی خاص در نشانی سایت روی هاست



sarapepors
یک شنبه 27 شهریور 1390, 10:13 صبح
سلام دوستان .
چرا زمانی که صفحه سایتم باز میشه این عبارت :(S(phmjgmrziytxqx45g2fod4z0)) در میان نشانی صفحه قرار میگیره؟ چرا به این صورت نمایش داده میشه چطور میتونم عبارت داخل پرانتز رو بردارم؟
http://jahang.com/(S(phmjgmrziytxqx45g2fod4z0))/Pages/Home.aspx

PersianFA
یک شنبه 27 شهریور 1390, 12:08 عصر
سلام دوست عزیز
شما در سایت خود از وضعیت نشست (SessionState) استفاده کرده اید و خاصیت HttpCookieMode آنرا به UseURI ست کرده اید
همانطور که میدانید هر وضعیت نشست یک ID دارد و شما این آیدی متغیر را در URL ذخیره کرده اید
برای حل این مشکل می توانید از کوکی برای ذخیره این ID استفاده کنید
به این صورت که شما در web.config سایت خود شاخه زیر را پیدا و تگ داخل شاخه را در آن بنویسید
<system.web> <sessionstate cookieless="UseCookies" /> </system.web>
نکته : به این URL هایی که ID های SessionState در آن ذخیره میشود munged URL می گویند

موفق و پیروز باشید

sarapepors
یک شنبه 27 شهریور 1390, 15:33 عصر
ممنونم دوست عزیز که کمکم کردین کاری رو که گفتین انجام دادم میتونم یه سوال دیگه بپرسم چرا با توجه به این که من sessiontime رو در همین کذ برابر 43200 قرار دادم اما در هاست این زمان همون یک ساعته البته اگه به صورت idle باشم که میشه نیم ساعت ؟ یعنی بهد گذشت 1 ساعت از ساین این کاربر عمل ساین اوت انجام میشه بدون این که کاربر اصلا خودش اقدام به ساین اوت کرده باشه این مشکل مدت هاست که در سایت من وجود داره و من نمیتونم براش کاری کنم ممنون میشم اگه کمک کنید؟
[CODE]
<sessionState mode="StateServer" cookieless="UseCookies" timeout="43200" stateConnectionString="tcpip=127.0.0.1:42424" />CODE]

PersianFA
دوشنبه 28 شهریور 1390, 13:41 عصر
سلام دوست عزیز
وضعیت نشست تنها در چند صورت از بین می رود
1- کاربر مرورگر را ببندد
2- اگر زمان نشست به سر رسد
3 - فراخوانی متد تخلیه ی حافظه وضعیت نشست
در حالت اول نشست پیگیری خود را از دست می دهد اما همچنان تا به سر رسیدن زمان خود باقیست
دلیل این نکته هم این است که بستن پنجره یک عمل سمت مشتری است
یک نکته قابل توجه دیگر اینکه واحد اصلی timeout بر حسب دقیقه بوده
برای مطمئن شدن از میزان timeout ابتدا برای تست یک بار آنرا در رویداد form_load فراخوانی کرده و مقدار آن را بخوانید
دوست عزیز توجه داشته باش که زمان timeout از آخرین در خواست کاربر به سرور محاسبه میشود یعنی اگر timeout شما 20 دقیقه باشد با حضور 20 دقیقه ای کاربر این زمان به سر نخواهد رسید
اما من به شما راه حلی برای sign out کردن و تخلیه ی وضعیت نشست توصیه میکنم
یک دکمه برای خروج کاربر با عنوان sign out ایجاد نموده و قطعه کد زیر را در آن بنویسید
session.abandon()
این کد کلیدی وضعیت نشست را به یکباره باطل کرده و تمام حافظه را آزاد می نماید و از افت سرعت وب شما می کاهد و قبل از timeout وضعیت نشست را باطل می نماید
آن طور که از پست شما متوجه شدم شما برای ورود و خروج کاربر به سایتتان از وضعیت نشست استفاده کرده اید و این مورد اصلا به صرفه نبوده و در صورت ازدیاد کاربران به شدت سرعت سایتتان کاهش می یابد
توجه داشته باشید که از وضعیت نشست برای ورود و خروج کاربر استفاده نمی شود
اگر مایل بودید من روشی را به منظور این عمل که کاملا ساده تر بوده و هیچ ترافیکی برای وب سرورتان ندارد با استفاده از کوکی هایی که عمرشان به باز بودن پنجره وابسته است بیان خواهم کرد

شاد ، موفق و پیروز باشید

sarapepors
دوشنبه 28 شهریور 1390, 16:58 عصر
سلام دوست عزیز
وضعیت نشست تنها در چند صورت از بین می رود
1- کاربر مرورگر را ببندد
2- اگر زمان نشست به سر رسد
3 - فراخوانی متد تخلیه ی حافظه وضعیت نشست
در حالت اول نشست پیگیری خود را از دست می دهد اما همچنان تا به سر رسیدن زمان خود باقیست
دلیل این نکته هم این است که بستن پنجره یک عمل سمت مشتری است
یک نکته قابل توجه دیگر اینکه واحد اصلی timeout بر حسب دقیقه بوده
برای مطمئن شدن از میزان timeout ابتدا برای تست یک بار آنرا در رویداد form_load فراخوانی کرده و مقدار آن را بخوانید
دوست عزیز توجه داشته باش که زمان timeout از آخرین در خواست کاربر به سرور محاسبه میشود یعنی اگر timeout شما 20 دقیقه باشد با حضور 20 دقیقه ای کاربر این زمان به سر نخواهد رسید
اما من به شما راه حلی برای sign out کردن و تخلیه ی وضعیت نشست توصیه میکنم
یک دکمه برای خروج کاربر با عنوان sign out ایجاد نموده و قطعه کد زیر را در آن بنویسید
session.abandon()
این کد کلیدی وضعیت نشست را به یکباره باطل کرده و تمام حافظه را آزاد می نماید و از افت سرعت وب شما می کاهد و قبل از timeout وضعیت نشست را باطل می نماید
آن طور که از پست شما متوجه شدم شما برای ورود و خروج کاربر به سایتتان از وضعیت نشست استفاده کرده اید و این مورد اصلا به صرفه نبوده و در صورت ازدیاد کاربران به شدت سرعت سایتتان کاهش می یابد
توجه داشته باشید که از وضعیت نشست برای ورود و خروج کاربر استفاده نمی شود
اگر مایل بودید من روشی را به منظور این عمل که کاملا ساده تر بوده و هیچ ترافیکی برای وب سرورتان ندارد با استفاده از کوکی هایی که عمرشان به باز بودن پنجره وابسته است بیان خواهم کرد

شاد ، موفق و پیروز باشید
سلام بر شما از این که توجه کردید و پاسخ دادید ممنونم من برای حفظ امنیت و لاگین در سایتم از کلاس formauthentication استفاده کردم و تنظیمات مربوط به اون رو در وب کانفیگ انجام دادم در واقع من 3 تا وب کانفیگ در سایتم دارم یکی که برای کل برنامه و همان که به صورت پیش فرض وجو داره و این کد رو در درونش نوشتم:



<

authentication mode="Forms">

<

forms name="Authenticationmysite" loginUrl="Pages/Login.aspx" defaultUrl="Default.aspx" slidingExpiration="true" protection="All" timeout="120"></forms>

</

authentication>


و در ذو وب کانفیگ دیگه از تگ authorisation برای تعیین سطح دسترسی کابران استفاده کردم برای نعیین نقش کاربران هم از کلاس roleprovider که از امکانات خود دات نت هست استفاده کردم ببینید من کمی سردر گم شدم این کلاس formauthenticatin از مگه از کوکی استفاده نمی کنه پس چرا هاست به من گفته باید session time رو تنظیم کنم ؟
در ضمن من برای خروج از کد زیر استفاده میکنم:



FormsAuthentication.SignOut();
FormsAuthentication

.RedirectToLoginPage();

اگر میشه کمکم کنید چون خیلی بابتش کلافه شدم و اصلا نمیدونم این روشی که من استفاده کردم اصلا از session استفاده میکنه یانه . ممنونم

sarapepors
دوشنبه 28 شهریور 1390, 17:19 عصر
توجه کنید که من از هیچ کدی دیگه ای که در اون session یا کوکی وجود داشته باشه استفاده نکردم .در ضمن در پیج لود صفحاتی که به کنترل دسترسی نیاز دارد هم این کد رو نوشتم :



bool isInRole = User.IsInRole("addministrator");


if (!isInRole)


FormsAuthentication.RedirectToLoginPage();

PersianFA
چهارشنبه 30 شهریور 1390, 22:57 عصر
سلام دوست عزیز

از وقفه به وجود اومده متاسفم
من جواب شما رو اون طور که متوجه شدم در چند پست پیش دادم اما دوباره یه جمع بندی میکنم
اما به سوال اصلی بر می گردیم
بخش authentication در web.config بخش امنیت مربوط به همین موارد است که متاسفانه یا خوشبختانه از SessionState استفاده می کند
یعنی شما به طور ناخواسته درگیر SessionState شده اید . اما با توجه به سوال اصلی شما که گفته بودید که کاربر تا حتی 2 ساعت بعد از خروج از اکانت خود همچنان این نشست از بین نمی رود
اولا : چون از authentication استفاده می کنید حتما برای تنظیم زمان TimeOut از کد زیر در web.config خود استفاده کنید


<SessionState cookieless=”UseCookies” Timeout=”30”>


توجه کنید همونطور که گفتم timeout بر حسب دقیقه است
اما جواب سوال دیگه ای از شما که فرموده بودید :
این کلاس formauthenticatin مگه از کوکی استفاده نمی کنه پس چرا هاست به من گفته باید session time رو تنظیم کنم ؟
اما جواب ، این کلاس formauthentication ازSessionState استفاده می کنه و خود SessionState از Cookie یا URI استفاده میکنه
پس امیدوارم این رابطه رو متوجه شده باشید و از سردرگمی شما کاسته شود
پس بدونید که شما غیر مستقیم با SessionState رابطه برقرار کرده اید
بقیه کد های شما رو چک کردم و همه چی درسته و بازهم میگم که به یاد داشته باشید در هنگام خروج کد زیر رو هم در logout بنویسید



Session.abandon()




دلیلشم اینه که این session به سرعت خالی و تا قبل timeout فضا آزاد بشه
دوست عزیز اگر من سوال رو خوب نفهمیدم لطفا سوال خودتون رو با یکم توضیحات بیشتر برام مطرح کنید

شاد ، پیروز و موفق باشید

PersianFA
دوشنبه 04 مهر 1390, 02:40 صبح
سلام دوست عزیز

میخواستم بدونم که مشکل شما برطرف شد یا همچنان مشکل پابرجاست؟
اگر مشکلی هست مطرح کنید

sarapepors
دوشنبه 04 مهر 1390, 07:35 صبح
سلام بر شما . در مورد مشکلم باید بگم که من زمان time out کوکی رو برابر با 120 دقیقه قرار دادم و با هاست هم تماس گرفتم و در خواست کردم که زمان idel time رو برای session برابر با یک ساعت قرار بدن ابتدا ی کار درخواست زمان 1 ماه رو کرده بودم که از قرار معلوم پشتیبانی نمی شد و کاربر حدود 30 تا 40 دقیقه sign in بود ولی از زمانی که به60 دقیقه کاهش دادم این مسئله بر طرف یعنی با هر درخواست کاربر به زمان افزوده می شه در وافع من می خواستم که لاگین سایتم مثل همین سایت برنامه نویس باشه و کاربر تا زمانی که خودش خروج رو انتخاب نکرده log out اتفاق نیفته اما این مسئله متاسفانه اتفاق نیفتاد اما از این وضعیتی هم که در حال حاضر داره راضیم کاربر بدون این که در خواستی داشته باشه 1 ساعت میتونه ساین این باشه اگر هم در خواست کنه که با اندازه 1 ساعت به زمان اضافه میشه (البته احتمال میدم چون خودم تا دو ساعت و نیم رو تست کردم) . از این که بهم کمک کردین و به صورت مبسوط توضیح دادید متشکرم.از این کد session.abandon هم که گفتید در sign out استفاده کردم

PersianFA
جمعه 08 مهر 1390, 01:50 صبح
سلام
خب پس خدارو شکر که فعلا مشکل حل شده!!!
میتونین آدرس سایتتون رو بدین تا اگه میشه یه نگاهی هم به اون بندازم؟

sarapepors
جمعه 08 مهر 1390, 08:22 صبح
http://jahangs.com این اولین کاریه که انجام دادم