PDA

View Full Version : سوال: رد درخواست يك صفحه با شرط خاص



explod_javad
شنبه 25 آبان 1387, 09:31 صبح
با سلام خدمت همه دوستان.
من ميخام توي سايتم اجازه نمايش يك صفحه بصورت مستقيم در browser را ندهم.
يعني فقط توي Iframe نمايش داده بشه و اگر كسي در Url Addrerss آدرس صفحه aspx رو وارد بكنه صفحه نمايش داده نشه يا يك صفحه خطا نمايش بده.

r_mehrizi
شنبه 25 آبان 1387, 10:19 صبح
شما مي تونيد از session استفاده كنيد كه اگه مقداري داخل اون نبود يك صفحه با نمايش خطا به شما نشون بده

merlin_vista
شنبه 25 آبان 1387, 21:18 عصر
خوب ، فرض ميكنيم كه شما دو عدد صفحه دارديد با نام هاي A.aspx و b.Aspx . در صفحه a.aspx يك عدد IFrame ميباشد كه قصد نمايش b.aspx را در آن داريم و ميخواهيم كه اگر كسي به طور مستقيم در آدرس بار نام صفحه b.aspx را تايپ كرد آن صفحه قابل نمايش نباشد .
براي اين كار كافيه در صفحه b.aspx ، صفحه قبلي كاربر را چك كنيم و اگر صفحه اي بود كه Iframe در آن بود صفحه را نمايش بدهيم و به غير از اين اگر بود صفحه را نمايش ندهيم يا به يك صفحه خطا انتقال بدهيم .

براي بدست آوردن صفحه قبلي كاربر از كد زير استفاده ميكنيم .

Request.UrlReferrer

كد را اين گونه ميشه نوشت . (البته شما بسته به كامپيوتر خودت تغييرش بده ) . اين كد را بايد در صفحه اي كه ميخواهي در درون IّFarme نمايش داده شود بنويسي :

if (Request.UrlReferrer != null)
{
if (Request.UrlReferrer.AbsolutePath.ToString() != "/Test/a.aspx")
{
Response.Redirect("~/Error.aspx");
}
}
else
{
Response.Redirect("~/Error.aspx");
}

Test = نام مكان سرور (نام پوشه اي كه سايت داخل آن قرار دارد در درون InetPub)
a.aspx = نام صفحه اي كه Iframe درون آن هست و بايد B.aspx درون آن نوشته شود
Error.aspx = صفحه خطا در صورتي كه درخواست از صفحه اي كه به غير از a.aspx آمده باشد .

--
ممكن است به گونه اي صحيح تر و يا بهينه تر دوستان بتوانند بنويسند . ولي الان اين به ذهن من رسيد .
با تشكر .

explod_javad
یک شنبه 26 آبان 1387, 10:29 صبح
با سلام و تشكر از همه دوستان
مشكل من حل شد.