تولید URL های دانلود موقت و پنهان كردن مسیر دانلود فایل در ASP.NET
گاهی اوقات شما نیاز به ایجاد لینك های موقت - URL ها كه پس از یك زمان خاص به پایان می رسد - به طوری كه یك منبع نشان داده شده توسط لینك فقط برای یك دوره خاص قابل دسترسی است. . برای مثال، یك سیستم ثبت نام كاربر كه به مرحله تأیید ایمیل نیاز دارد را در نظر بگیرید. هنگامی كه سیستم یك ایمیل خودكار به كاربر ارسال می كند، ممكن است بخواهید كه كاربر طی دو روز كاری ایمیل را تأیید كند؛ در غیر این صورت تأیید معلق است. پس از آن كاربر برای دریافت تأییدیه صحت ایمیل با مدیر تماس برقرار می كند. وضعیت مشابه در هنگام بارگیری فایلها بوجود می آید. ممكن است بخواهید چند كپی از نرم افزاری كه در حال توسعه هستید را به رایگان بفروشید و ممكن است بخواهید نشانیهای اینترنتی موقت را برای بارگیریهایی كه پس از 30 روز به پایان برسد، ایجاد كنید.
اگر چه روش های مختلفی برای تولید چنین نشانی های اینترنتی موقت وجود دارد، این مقاله یك راه انعطاف پذیر و آسان برای انجام این كار با استفاده از مسیریابی ASP.NET همراه با منطق تولید رمزگذاری دانلود را نشان می دهد. برای شروع این برنامه، یك برنامه خالی Web Forms ایجاد كنید و یك پایگاه داده SQL Server را به آن اضافه كنید. پایگاه داده فقط یك جدول دارد - Downloads - و مدل ADO.NET Entity Data آن در زیر نشان داده شده است:

همانطور كه می بینید جدول Downloads شامل هشت ستون است - Id، DownloadTitle، Url، DownloadToken، ExpireAfterDownload، ExpiryDate، Downloaded و Hits. ستون DownloadTitle شامل یك عنوان كاربر پسند برای دانلود است. شما می توانید از این عنوان در برخی از صفحه دانلود برای اشاره به كاربر به فایل دانلود كنید. ستون Url حاوی آدرس واقعی فایل مورد نیاز برای دانلود است. این URL هرگز به كاربر نهایی نمایش داده نخواهد شد. ستون DownloadToken بسیار مهم است زیرا دارای یك نشانه منحصر به فرد و به صورت تصادفی برای هر لینك دانلود است. این نشانه برای كاربر به عنوان بخشی از لینك دانلود شما با آنها به اشتراك گذاشته می شود. به عنوان مثال،لینك دانلود برای كاربر به صورت: http: // some_domain / downloads / ABCD1234 نمایش داده خواهد شد. در این آدرس ABCD1234 یك نشانه تصادفی تولید شده است. فایل دانلود می تواند به دو روش منقضی شود:
- بعد از دانلود منقضی شود.
- ممكن است یك تاریخ انقضا مشخص داشته باشد.
تنظیم اولیه توسط ستون ExpireAfterDownload (نوع بیت داده) كنترل می شود و تنظیمات بعدی توسط ستون ExpiryDate (نوع داده datetime) كنترل می شود. در نهایت، ستون Hits تعداد دفعاتی كه URL در دسترس است ذخیره می شود. توجه داشته باشید كه اگر از تنظیمات ExpireAfterDownload استفاده می كنید.
اكنون Global.asax را باز كنید و مسیر Mapping زیر را اضافه كنید:
routes.MapPageRoute("Downloads","FileDownload/{downloadtoken}","~/DownloadFile.aspx");
این نقشه بندی مسیر شما را قادر میسازد URL هایی مانند زیر تولید كنید:
<http: //localhost/FileDownload/<download_token
و ...
مشخصات پروژه:
- ویژوال استدیو 2015
- sql 20144 (البته اسكریپت بانك قرار داده شده برای ورژنهای كمتر)
- ٍEntityFramework 6
- زبان C#
- asp.net web form
محتویات فایل دانلود:
- سورس كامل پروژه
- اسكریپت sql بانك
- بانك sql 2014
- و راهنمای فایل pdf