PDA

View Full Version : سوال: سمپل راجع به امنیت و سطح دسترسی کابر (فوری)



hamed_f65
شنبه 28 دی 1387, 17:20 عصر
سلام دوستان
خسته نباشید خدمت همه ی عزیزان زحمتکش که تا الان خیلی چیزا ازشون یاد گرفتم

من با ASP.NET روی یه پروژه ی کوچیک کتابخانه به زبان VB دارم کار میکنم که باید تا 10/11/87 تحویلش بدم
یه مشکل واسم پیش اومده که خواهش می کنم از دوستان با یه سمپل کوچیک کمکم کنن

موضوع اینه که من می خوام فرم لاگینم یوزر و پسورد رو دریافت کنه :
اگه درست بود بره به فرم "a.aspx"
اگه غلط بود پیغام خطا بده
تا اینجای کار که هیچ مشکلی وجود نداره

نکته ی مهمی که وجود داره اینه که
1) من می خوام فقط کاربرانی وارد فرم "a,aspx" بشن که یوزر و پسوردشون درست باشه
2) وقتی روی نوار آدرس ، آدرس صفحه "a.aspx" وارد شد ، کابر نتونه وارد صفحه بشه (چون اول باید لاگین بشه تا بتونه به این صفحه دسترسی داشته باشه)

دوستان اگه امکانش هست این مشکل منو حل کنید
میدونم برای اساتید کمتر از یک ربع وقت می گیره
ازتون خواهش میکنم برای این مشکل من وقت بذارید
2 تا فرم بسازید و این عملیات رو روش پیاده کنید و پروژه رو اینجا آپلود کنید
مطمئنا این مشکل خیلی از دوستان هستش

پیشاپیش ممنون از لطف همتون

30yavash
شنبه 28 دی 1387, 19:02 عصر
روش1:
توی رویداد Onload صفحه a.aspx اینو تعریف کن:


if (!Request.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
Response.End();
}
اینجوری کاربر به صفحه login.aspx منتقل می شه.
روش2:
اگر تعداد صفحاتت زیاده و از masterpage استفاده می کنی این کد رو بذار توی onload مستر پیج.
روش3:
راه سوم استفاده از web.config هست.
که من masterpage رو بیشتر می پسندم.

hamed_f65
شنبه 28 دی 1387, 21:10 عصر
یه همچین چیزی باید توی پروژه انجام بدیم
میشه راجع به این کد توضیح بدید که چطوری عمل میکنه؟
منظورم اینه که چطوری میشه با استفاده از این نمونه کد به هدف من رسید



<configuration>
<system.web>

...
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="/login.aspx" protection="Encryption"/>
</authentication>

...

</system.web>
<configuration>

hamed_f65
شنبه 28 دی 1387, 22:26 عصر
روش1:
توی رویداد Onload صفحه a.aspx اینو تعریف کن:


if (!Request.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
Response.End();
}اینجوری کاربر به صفحه login.aspx منتقل می شه.
روش2:
اگر تعداد صفحاتت زیاده و از masterpage استفاده می کنی این کد رو بذار توی onload مستر پیج.
روش3:
راه سوم استفاده از web.config هست.
که من masterpage رو بیشتر می پسندم.

شما فکر کنید یه فرم خام بهتون دادن و میخوان این کارا روش انجام بشه
من اصلا از کد شما چیزی متوجه نشدم
اگه امکانش هست راهنمایی کنید

m.hamidreza
شنبه 28 دی 1387, 22:35 عصر
شما با تنظیم ویژگی های authentication و authorization در وب کانفیگ، تصدیق هویت و اعتبارسنجی کاربران رو میتونی مدیریت کنی.
مطالعه ی این دو تا لینک میتونه به شما کمک کنه:
http://www.codeproject.com/aspnet/Fo...nAuthorizn.asp (http://www.codeproject.com/aspnet/FormAuthenticnAuthorizn.asp)
http://www.codeproject.com/aspnet/formsroleauth.asp

30yavash
شنبه 28 دی 1387, 23:25 عصر
شما فکر کنید یه فرم خام بهتون دادن و میخوان این کارا روش انجام بشه
من اصلا از کد شما چیزی متوجه نشدم
اگه امکانش هست راهنمایی کنید
چه جور راهنمایی می خوای؟کد خیلی واضحه.

شما بیا از Web Site Administration Tool استفاده کن.ببین چطوره.
در ویژوال استدیو برو به منوی Website و بعد گزینه ASP.Net Configuration رو انتخاب کن.
یه صفحه باز می شه.
تب Security رو انتخاب کن حال Manage Access Rule رو بزن.
تو این قسمت می تونی روی هر پوشه که بخوای با کلیه محتویاتش مجوز دسترسی بذاری.
نیازی هم نیست که خودت به صورت دستی فایل web.config رو دستکاری کنی.خودش برات این کار رو می کنه.

ضمنا این کدی که توی پست شماره 3 نوشتی ناقصه.جواب گوی کارت نیست.

30yavash
شنبه 28 دی 1387, 23:30 عصر
شما فکر کنید یه فرم خام بهتون دادن و میخوان این کارا روش انجام بشه
من اصلا از کد شما چیزی متوجه نشدم
اگه امکانش هست راهنمایی کنید
کاری نداره.
وسط فرم خامم 2بار کلیک می کنم و بعد کد زیر رو توش می نویسم.


if (!Request.IsAuthenticated)
{
FormsAuthentication.RedirectToLoginPage();
Response.End();
}


البته همون طور که در پست قبل گفتم یه سری تنظیمات هم توی Web Site Administration Tool انجام می دم.

hamed_f65
یک شنبه 29 دی 1387, 00:29 صبح
دوست عزیز اگه میشه به این پروژه یه نگاه بنداز ببین مشکلش کجاست
چون چیزی که از ما خواسته شده بر این مبنا هستش
یعنی نوشتن همچین کدی توی web.config و بقیه قضایا که توی فابل مشخصه
ممنون

hamed_f65
یک شنبه 29 دی 1387, 17:41 عصر
شما با تنظیم ویژگی های authentication و authorization در وب کانفیگ، تصدیق هویت و اعتبارسنجی کاربران رو میتونی مدیریت کنی.
مطالعه ی این دو تا لینک میتونه به شما کمک کنه:
http://www.codeproject.com/aspnet/Fo...nAuthorizn.asp (http://www.codeproject.com/aspnet/FormAuthenticnAuthorizn.asp)
http://www.codeproject.com/aspnet/formsroleauth.asp

ممنون از توجه و راهنماییتون
من همه این کارها رو انجام دادم ولی موقع اجرا با ارور مواجه میشم
فایل پروژه ی ساده ی این موضوع رو توی پست قبل گذاشتم
اگه امکان داره شما چک کنید و مشکلش رو بهم بگید
واقعا دیگه خسته شدم از بس تغییرات دادم و نتیجه ندیدم
ممنون

hamed_f65
یک شنبه 29 دی 1387, 20:22 عصر
دوستان عزیز خواهشا اگه کسی میتونه کمک کنه

m.hamidreza
دوشنبه 30 دی 1387, 00:04 صبح
پوشه پروژتو در درایو پیش فرض C در پوشه Inetpub در پوشه www کپی کن و از اونجا بازش کن.
اون / قبل از Login.aspx در وب کانفیگ رو هم بردار.

پ.ن: کدها رو هم در فایل vb. بنویس نه در aspx.

hamed_f65
دوشنبه 30 دی 1387, 09:10 صبح
پوشه پروژتو در درایو پیش فرض C در پوشه Inetpub در پوشه www کپی کن و از اونجا بازش کن.
اون / قبل از Login.aspx در وب کانفیگ رو هم بردار.

پ.ن: کدها رو هم در فایل vb. بنویس نه در aspx.

من این کار رو کاردم.یعنی فایل پیوست زیر رو داخل C:\Inetpub قرار دادم و اون علامت اسلش رو هم حذف کردم
برنامه اجرا شد
حالا یه مشکلی که وجود داره اینه که با یوزر هایی که توی Web.config تعریف کردم نمی تونم
لاگین شم.یعنی حتی وقتی یوزر و پسورد رو درستم واردم میکنم صفحه redirect نمیشه
من اینهمه کار با ASP انجام دادم ولی توی هیچکدوم مثل این مشکل یوزر و پسورد گیر نکرده بودم
ممنون میشم اگه راهنمایی کنید

araz_pashazadeh
دوشنبه 30 دی 1387, 23:41 عصر
من این کار رو کاردم.یعنی فایل پیوست زیر رو داخل C:\Inetpub قرار دادم و اون علامت اسلش رو هم حذف کردم
برنامه اجرا شد
حالا یه مشکلی که وجود داره اینه که با یوزر هایی که توی Web.config تعریف کردم نمی تونم
لاگین شم.یعنی حتی وقتی یوزر و پسورد رو درستم واردم میکنم صفحه redirect نمیشه
من اینهمه کار با ASP انجام دادم ولی توی هیچکدوم مثل این مشکل یوزر و پسورد گیر نکرده بودم
ممنون میشم اگه راهنمایی کنید

دوست من یه نمونه برات میزارم فقط چون دانشجو هستی و مشکل داری بگیر ایشالا حل میشه :چشمک:

hamed_f65
چهارشنبه 02 بهمن 1387, 15:24 عصر
ممنون از لطفت ولی این کلی ارور داره
به خدا وقتشو ندارم بشینم اروراشو بگیرم.
ای کاش روی همون پروژه خودم نگاه میکردید
به هر حال خیلی ممنون

keyvanB
چهارشنبه 02 بهمن 1387, 18:10 عصر
من هیچ وقت از authentication های .net استفاده نمیکنم یه جدول درست میکنم توی دیتا بیس که حداقل دوتا فیلد user name و Password داره و از اون استفاده میکنم برای اینکه اگه کاربر مستقیم توی آدرس بار آدرس رو تایپ کرد وارد نشه میشه از سشن Session استفاده کرد.

30yavash
چهارشنبه 02 بهمن 1387, 19:43 عصر
من هیچ وقت از authentication های .net استفاده نمیکنم یه جدول درست میکنم توی دیتا بیس که حداقل دوتا فیلد user name و Password داره و از اون استفاده میکنم برای اینکه اگه کاربر مستقیم توی آدرس بار آدرس رو تایپ کرد وارد نشه میشه از سشن Session استفاده کرد.
اختراع دوباره چرخ جایز نیست!

araz_pashazadeh
شنبه 05 بهمن 1387, 15:11 عصر
ممنون از لطفت ولی این کلی ارور داره
به خدا وقتشو ندارم بشینم اروراشو بگیرم.
ای کاش روی همون پروژه خودم نگاه میکردید
به هر حال خیلی ممنون


دوست من اين برنامه رو من خودم اجرا كردم هيچ مشكلي نداره با vs 2008 اجرا كن در ضمن لطف كن خودت زحمت بكش كد بنويس تا اين حدي هم كه گذاشتم بسته..

hamed_f65
یک شنبه 06 بهمن 1387, 23:10 عصر
دوست من اين برنامه رو من خودم اجرا كردم هيچ مشكلي نداره با vs 2008 اجرا كن در ضمن لطف كن خودت زحمت بكش كد بنويس تا اين حدي هم كه گذاشتم بسته..

آقا دمت گرم
پس 100% مشکل از اینه که با 2005 کار میکنم
تست میکنم نتیجه رو میگم
ممنون