PDA

View Full Version : مخفی کردن بخشی از سایت بنابر نوع کاربر



anahita_s
شنبه 31 شهریور 1386, 11:28 صبح
با سلام
من داخل صفحات سایت از یکسری لینک در بالای صفحه استفاده کردم، در واقع این لینک‌ها به صورت منو هستند که با استفاده از یک ردیفtable اچتملی تعریف شده‌اند، من این منو را در masterpage ایجاد کردم، در این پروژه من دو نوع user دارم، که یکی admin و دیگری کاربر محدود است، admin به تمام صفحات سایت دسترسی دارد در حالیکه کاربر محدود نباید به بخشی از سایت دسترسی داشته باشد،مشکل من این است که به چه شکل بخشی از منو را ازدید کاربر محدود مخفی نمایم، در واقع این اتفاق باید در همه صفحات روی دهد، آیا امکان ایجاد تغییر در masterpage هنگام بررسی نوع کاربر است.
با تشکر

sarasara
شنبه 31 شهریور 1386, 12:57 عصر
یه روش: با استفاده از دستورات جاوااسکریپت، به اینصورت که یه تابع داری که ID ستون و Role رو می گیره و چک می کنه اگه Admine اونوقت Display اون TD رو inline می کنه واگه visitor هست none می کنه.
می تونی دوتا Tr درست کنی یکی برای Visitor و یکی برای Admin، در ابتدا هر دو TR ها Displayاشون none هست و بعد با تابع جاوااسکریپت چک می کنی اگه Admine، سطر(TR) مربوط به Admin نشون داده میشه و اگه Visitoreِ دیسپلی(display) سطر مربوط به ویزتنور inline می شه.

document.getElemnetById('trId').style.display='inl ine'
روش دوم با خود دستورات .net: به این صورت که تو PageLoad چک می کنی اگه Sesssion("Role") برایر Admin هست همه link ها رو Visible=true می کنی و اگه Visitor هست linkهایی که لازم نیست ببینه رو visible=false می کنی.
موفق باشی

hamed_bostan
شنبه 31 شهریور 1386, 13:09 عصر
شما میتونید از usercontrol استفاده کنید و در صورت داشتن مجوز اونها رو به صفحه add کنید به صورت دینامیک . ضمنا در مورد rolebase بودن سیستم تو همین چند روز گذشته حتی خیلی تاپیک ها مطرح شده . یه کم جستجو کن

sama01
شنبه 31 شهریور 1386, 13:20 عصر
از این کد هم می‌شه استفاده کرد. در رویداد Init صفحه، برای کاربرانی که role آنها admin نیست، یک‌سری کنترل‌ها حذف می‌شوند:


Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)
If User.IsInRole("admin") = False Then
Label1.Visible = False
Label2.Visible = False
...
End If
End Sub