PDA

View Full Version : تعریف سطح دسترسی برای هر فایل



javad3151
چهارشنبه 24 آبان 1385, 08:42 صبح
سلام
من دارم یه نرم افزار اتوماسیون اداری می نویسم . کاربرانی که برای هم نامه ارسال می کنند می تونند یه نامه خودشون یه فایل ضمیمه کنند حالا مشکل اینه که فقط کسانی باید به فایل ضمیمه دسترسی داشته باشند که نامه برای اونها ارسال میشه(و بقیه حتی اگرلینک فایل ضمیمه رو داشتند نتونند ببینندش) ضمنا چون حجم برنامه بالا میره نمیخوام فایلها رو در دیتابیس ذخیره کنم

Behrouz_Rad
چهارشنبه 24 آبان 1385, 21:30 عصر
اگر فرض کنیم که کاربر به هر شکل بتونه نام و مسیر فایل رو بر روی سایتت پیدا کنه، در این حالت، داونلود فایل از طریق HttpHeader (که مسلما با این روش آشنایی داری)، نیز مشکلی رو حل نمی کنه!
بهترین راه، ایجاد یک HttpModule هست که بر روی تمامی درخواست های فایل هایی که پسوندشون رو برای اون در Web.Config مشخص می کنی، نظارت داشته باشه.
نکته ای که اکثرا به اون توجه نمیشه و برنامه نویس حتی با انجام درست تمامی مراحل باز هم موفق نمیشه اینه که:
کلیه ی درخواست های ارسال شده به سرور، توسط ISAPI کنترل میشن. ISAPI تنها بر روی درخواست فایل هایی با پسوند مشخص به وظیفه ی خودش عمل می کنه. به عنوان مثال، پسوندهای aspx، ascx، asmx، resources و ...
مسلم هست که فایل هایی با پسوند ZIP یا DOC یا ...، جز پسوندهای شناخته شده برای ISAPI نیستند! در نتیجه هیچ کنترلی بر روی این فایل ها انجام نمی گیره!
پس باید این نوع فایل ها رو به ISAPI معرفی کرد. این کار توسط ادمین سرور از طریق IIS قابل انجام هست.

موفق باشید.

javad3151
چهارشنبه 24 آبان 1385, 22:00 عصر
بنابراین باید نام تمام فایلها و سطوح دسترسی را در یک دیتابیس ذخیره کنم و هر وقت که کسی این فایلها رو درخواست کرد اول سطح دسترسی روش رو کنترل کنم، فکر نکنم تنظیمات ISAPI به تنهایی کفایت کنه ، درسته؟

Behrouz_Rad
چهارشنبه 24 آبان 1385, 23:02 عصر
هر وقت که کسی این فایلها رو درخواست کرد اول سطح دسترسی روش رو کنترل کنم
دقیقا!
Map کردن نوع فایل با ISAPI تنها برای هندل کردن درخواست برای اون نوع فایل هست.
مسلما باید سطح دسترسی کاربر رو مشخص کنی و اجازه ی داونلود رو به اون بدی یا ندی!

موفق باشید.