PDA

View Full Version : سوال: جلوگیری از دانلود تمامی فایل ها



farid_zolghadr
پنج شنبه 09 آبان 1392, 08:40 صبح
سلام
یک سایت فروشگاهی دارم و می خوام تعدادی فایل برای کسانی که اجازه خرید دارن،دسترسی دانلود بدم.ولی مشکلی که وجود داره اینه که آدرس مسیر فایل من موقع دانلود افراد می تونن ببینن و با این آدرس به فایل دسترسی پیدا کنن و هر چی تو سرور هست دانلود کنن.
چی کار کنم این مشکل پیش نیاد.ممنون می شم کمکم کنید

mehdin69
پنج شنبه 09 آبان 1392, 08:45 صبح
خب از تکنیک area استفاده کن و اون قسمت هایی که می خوایی بشن لینک دانلود باید بزنی
[http] یعنی اگه کلیک کردن بهشون نشون بده و اعتبار سنجی هم که خودتون استاد هستید :)

hakim22
پنج شنبه 09 آبان 1392, 11:28 صبح
شما باید کد اتریبیوت Authorize رو به صورت دستی بنویسید و درونش چک کنید که کاربر به صفحه دسترسی دارد یا خیر : Custom Authorize Attribute

farid_zolghadr
شنبه 11 آبان 1392, 08:27 صبح
می شه خوهش کنم یک مثال برای من ایجاد کنید.تا بیشتر یاد بگیرم.ممنون میشم

hakim22
شنبه 11 آبان 1392, 14:29 عصر
یک کلاس جدید درست کنید و کد زیر رو درونش کپی کنید :


public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (...)
'allow access
return true;
else
'deny access
return false;
}
}


شرط دسترسی به صفحه رو کد نویسی کنید. حالا هرجا از MyAuthorize استفاده کنید از این کد برای بررسی دسترسی به بخش مورد نظر استفاده میشود.
شما میتوانید پارامترهای مربوط به Action ، Controller و ID و حتی مقدار Area رو از HttpContext استخراج کنید و بررسی کنید که آیا کاربر اجازه ی مشاهده ی کنترلر مربوط به فایل ها و اکشن نمایش دهنده ی آن با ID مشخص شده را دارد یا خیر

Cybersilent
شنبه 11 آبان 1392, 15:05 عصر
فکر کنم یک راه حل ساده تر هم باشه اونم اینکه فقط در صورتی اجازه دانلود بدی که شرط زیر برقرار باشه :

if (Request.UrlReferrer != null && Request.UrlReferrer.AbsolutePath == "/YouSite/Download")
{
// Prepair download link
}