با سلام
من می خواهم فایلی را روی سرور برای دانلود بگذارم منتها می خواهم فقط یک سری کاربران خاص
که پسورد مخصوص دارند و این پسورد هم از دیتابیس خوانده می شود بتوانند آن را دانلود کنند
لطفا من را راهنمایی نمایید
با سلام
من می خواهم فایلی را روی سرور برای دانلود بگذارم منتها می خواهم فقط یک سری کاربران خاص
که پسورد مخصوص دارند و این پسورد هم از دیتابیس خوانده می شود بتوانند آن را دانلود کنند
لطفا من را راهنمایی نمایید
سلام
اگر امنيت خيلي مهم است، يكي از بهترين راهها ذخيره فايل داخل ديتابيس است.
درصورتيكه اگر فايل داراي آدرس مشخص باشد ( [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] ) نميتوان روي امنيت زياد حساب كرد.
فايل را داخل ديتابيس مثلا بصورت rar همراه با password ذخيره كنيدو با استفاده از يك صفحه رابط كه كلمه عبور را كنترل مي كند بصورت Response.BinaryWrite براي كاربر ارسال كنيد.
يا فايل را خارج از www قرار دهيد و بوسيله يك صفحه رابط فايل را بصورت گفته شده ارسال كنيد.
سلام.از راهنمایتون ممنونم
اما اول یه سوال و اون اینکه ایا برای فایل های با حجم زیاد مشکلی ایجاد نمیشود؟
در ضمن شما میتونید یه نمونه برنامه برای من بفرستید راستش خیلی فوری است .و سریع باید فایلمون را برای دانلود بذاریم
بازم ممنون
سلام
بستگي دارد به چي بگيد حجيم، فكر نكنم 10 -20 مگ مشكلي داشته باشد.
اين هم يك مثال :
ياکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
در کل سریعترین راه اضافه کردن یک فایل ashx است (Generic Handler)
بعد از اضافه کردن فایل شما باید داخل رویه ProcessRequest و با توجه به مقادیر context دستورات لازم را
بنویسید. به کد نمونه زیر دقت کنید
این کد فایل درخواستی را از QueryString میگیرد و در صورت True بودن Allow در شی Session دانلود را شروعکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میکند.
1- فرض شده تمامی فایلها در پوشه Download و در ریشه سایت هستند. و واضح است که با تنظیم IIS یا یک فایل web.config باید جلوی ورود به پوشه Dowwnload ها بسته شود تا کاربران نتوانند با حدس زدن مسیر مدیر ashx ما را دور بزنند!
2- کد ها باید اصلاح شوند.
3- باید پیش بینی های خطا صورت گیرد
4- اعتبار سنجی کاربر را با الگوریتم خود اصلاح کنید.
بعد هر کجا خواستید لینک دانلود بدهید،
باید به جایب مسیر اصلی این لینک را بگذارید handlerpagename.ashx?File=filename.zip
handlerpagename نام اصلی فایل ashx شما است و filename.zip نام فایل درخواستی
من خودم اولین بار که سایتم را آپلود کردم از این روش استفاده کردم ولی بعد تغییرش دادم و حالا که وقت بیشتری
داشته ام از کد بسیار جالب دیگری استفاده کرده ام. ولی این چیزی از قدرت و سرعت فایلهای ashx نمی کاهد.
سلام خسته نباشید
راستش میدونم که انتظارم خیلی نابجا است ولی اگه این برنامتون را برای من ارسال کنید خیلی ممنون میشوم
البته اگه مایل هستید.
راستش من درگیر یک برنامه دیگر هستم و از اونجایی که تازه وارد هستم نمیتونم درگیر برنامه جدیدی شوم از طرفی یه فایل برای دانلود داریم که حتما باید برای کاربران خاصمون قرار دهیم.
در ضمن میشه درمورد فایل های ashx بیشتر توضیح بدهید
خیلی ممنون
Last edited by fereshte222; 07-04-2007 at 21:59.
سلام
برنامه من به کار شما نمی آید!
تازه سورس اولیه را دیگر ندارم و کد جدید از روش پیچیده تری استفاده میکند که جنبه های خاص امنیتی را هم لحاظ کرده.
من نمی خواستم اجازه دانلود را برای کاربران خاص فراهم کنم (همه اجازه دانلود مستقیم را دارند) فقط میخواستم آمار دقیق دانلودها را داشته باشم. (چندبار؟ آخرین تاریخ دانلود؟ و...)
طبیعی است که بادادن مسیر مستقیم پوشه به هدفم نمی رسیدم (و همچنین شما!)
ولی بنیان کار یکی است و آن در دست گیری اتوبان دانلودها است!!!!! حال چه برای شمارش و آمار گیری و چه برای جلوگیری از دانلود افراد غیر مجاز.
به همان کد نمونه رجوع کنید. به نظر من که اصل مطلب را به روشنی توضیح داده.
سلام
من می خواهم هر کاربر فایل مربوط به خودش را بتواند دانلود کند تکه کدی رانوشتم که همهکاربران 1فایل را می توانند دانلود کنند.
لطفا کمکم کنید.
سلام
فایل مخصوص خودش یعنی چه؟من می خواهم هر کاربر فایل مربوط به خودش را بتواند دانلود کند تکه کدی رانوشتم که همهکاربران 1فایل را می توانند دانلود کنند
یعنی هر کاربر فقط یک تک فایل خاص را باید دانلود کند؟ یا یک گروه فایل؟
فایلهای دو کاربر مختلف یک نام هستند یا تفاوت نام هم دارید؟
...
شرایط را بیشتر تشریح کنید تا بتوان کوتاه ترین راه حل را پیشنهاد داد.
(((
طبیعتاً یکی از کاملترین راه ها ذخیره اطلاعات فایلها و مجوزهای دسترسی و... در جداول دیتابیس است که بعد برنامه برای هر کاربر مجوزها و بررسی و Stream مربوطه را ارسال کند...
)))
موفق باشید
سلام
سایتی که می خواهم طراحی کنم این هست که تعدادی مشتری ثبت نام می کنند و سپس فایلی را می خواهند ترجمه کنند را آپلود می کنند و سپس تعدای از مترجمین هم برای همکاری ثبت نام می کنند و وقتی که مترجم فایلهای مربوط به مشتریان را ترجمه کرد فایلها را آپلود می کند سپس هر مشتری باید بتواند فایل مخصوص خودرا که مترجم برای آن ترجمه کرده را دانلود کنند.
احتمالا باید از sessionاستفاده کنم ولی نمیدونم طرز استفاده از آن چطوری است.
ممنونم
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)