PDA

View Full Version : سوال: عمل نکردن امنیت در web.config



kiani2012
یک شنبه 30 مهر 1391, 15:48 عصر
سلام
من میخوام امنیت را با استفاده از تگها توی Web.config ایجاد کنم
من چند پوشه دارم

پوشه ALL
پوشه MainAdmin

محتویات پوشه ها هم به این صورت :
پوشه ALL:
login.aspx
default.aspx
پوشه MainAdmin:
mainadminindex.aspx
و محتویات ریشه هم :
Default2.aspx

(البته هر کدام از پوشه ها Web.config دارن)

من میخوام همه کاربران به ریشه و پوشه All دسترسی داشته باشن و کاربر ابتدا وارد Default2 بعد توسط لینکی معمولی وارد Default (در پوشه All) و بعد با لینکی دیگر وارد login شود و بعد از تشخیص هویت مدیر وارد mainadminindex بشه ولی این امنیت را درست انجام ندادم بعد از تشخیص هویت دوباره وارد خود صفحه Login میشه؟
من این تگها را در Webconfig ها اضافه کردم.
Webconfig ریشه:
کد HTML:
<authorization>

<allow users="?" />
</authorization>

<authentication mode="Forms">
<forms loginUrl="All/login.aspx"/>
</authentication>
Webconfig پوشه All:
کد HTML:
<authorization>
<allow users="*" />
</authorization>
پوشه MainAdmin :
کد HTML:
<authorization>
<allow users="mainadmin" />
<deny users ="*"/>
</authorization>

amirzandi
سه شنبه 02 آبان 1391, 08:00 صبح
این کد را بین system.web قرار بدید :


<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" protection="All" name=".AUTHLOGIN">
</forms>
</authentication>
<authorization>
<deny users="?"></deny>
</authorization>
و کد های location رو بیرون system.web مانند مثال زیر قرار بدید :



<location path="StyleSheet.css">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="CRM">
<system.web>
<authorization>
<deny users="?"/>
<allow roles="16,18,22"/>
</authorization>
</system.web>
</location>
</configuration>

kiani2012
سه شنبه 02 آبان 1391, 11:57 صبح
این کد را بین system.web قرار بدید :


<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" protection="All" name=".AUTHLOGIN">
</forms>
</authentication>
<authorization>
<deny users="?"></deny>
</authorization>
و کد های location رو بیرون system.web مانند مثال زیر قرار بدید :



<location path="StyleSheet.css">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="CRM">
<system.web>
<authorization>
<deny users="?"/>
<allow roles="16,18,22"/>
</authorization>
</system.web>
</location>
</configuration>


این کدا را توی کدوم webconfig بزارم؟ توی webconfig ریشه؟
چرا کد دومی 2تا system.web داره؟

amirzandi
سه شنبه 02 آبان 1391, 12:17 عصر
شما در هر folder از پروژه می توانین 1 فایل web.config داشته باشید . من در پروژه مثال فرض کردم که پروژه من یک پرونده به نام CRM دارد.

kiani2012
سه شنبه 02 آبان 1391, 15:52 عصر
شما در هر folder از پروژه می توانین 1 فایل web.config داشته باشید . من در پروژه مثال فرض کردم که پروژه من یک پرونده به نام CRM دارد.

خوب الان که من 2 پوشه All(دسترسی همه)که دارای یه Webconfig و پوشه Admin(دسترسی فقط مدیر) و دارای یه Webconfig دارم و در ریشه هم یه Webconfig دارم باید داخل هر کدوم کدوم کدها رو بزارم؟

amirzandi
سه شنبه 02 آبان 1391, 17:12 عصر
قطعه کد اولی را در web.config ریشه ، دومی را برای folder های که دارید.

kiani2012
سه شنبه 02 آبان 1391, 18:58 عصر
قطعه کد اولی را در web.config ریشه ، دومی را برای folder های که دارید.

سلام اولی رو توی ریشه و دومی رو توی فولدرام گذاشتم جواب نداد.

amirzandi
چهارشنبه 03 آبان 1391, 07:11 صبح
کد را باید بر اساس تنظیمات و folder هایی که در پروژه دارید تغییر دهید ، من این کد را مثال زدم برای شما دوست عزیز...

kiani2012
چهارشنبه 03 آبان 1391, 10:21 صبح
کد را باید بر اساس تنظیمات و folder هایی که در پروژه دارید تغییر دهید ، من این کد را مثال زدم برای شما دوست عزیز...

من هم با توجه به پروژه خودم تغییرش دادم مثلا اسم پوشهCRM را اسم پوشه خودم گذاشتم ولی بازم جواب نداد
میشه یه بار دیگه متن سوالمو بخونید و تغییرات لازم را برای هرجا برام بگید؟

kiani2012
پنج شنبه 04 آبان 1391, 08:22 صبح
با سلام
مشکلم حل شد جوابو مینویسم تا اگر کسی بعدا به همین مشکل بر خورد بتونه حلش کنه:
نکته1:(به ترتیب کدها و تگها دقت شود)
مهمترین نکته اینه که شما حتما باید بعد از تشخیص هویت توسط کدهای vb یا #c و قبل از Redirect کردن به صفحه مربوط به کاربر در حال login کردن باید کد زیر را بنویسید:
FormsAuthentication.RedirectFromLoginPage("YOUR FOLDER NAME(MainAdmin)", true);

و تگهای فایلهای webconfig ریشه هم باید به این صورت نوشته بشه:(نکته1)

<authentication mode="Forms">
<forms loginUrl="All/login.aspx" timeout="360"></forms>
</authentication>
<authorization>
<allow users ="*"/>
</authorization>

و تگهای مربوط به webconfig پوشه All :

<location path="All">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>

تگهای مربوط به webconfig پوشه MainAdmin:

<authorization>
<allow users="MainAdmin" />
<deny users="*"/>
<deny users ="?"/>
</authorization>

بقیه پوشه ها هم به همین صورت.
یا حق