PDA

View Full Version : مشکل با منو و تنظیمات امنیتی



alireza643
چهارشنبه 09 بهمن 1387, 18:22 عصر
سلام
من یه مشکل بزرگی با منو دارم.
من برای امنیت سایت از امکانات خود دات نت استفاده میکند. مشکل من با نمایش منو هست. میخوام اگه مثلا کاربر عادی هست منوی ادمین رو نبینه.
تو تنظیمات برنامه Roles رو فعال کردم و Role ادمین رو هم ساختم.
تنظیمات تو web.config انجام دادم. تو sitemap هم SecurityTrimmingEnabled="true" را ست کردم. حالا برای منویی که مخصوص ادمین هست roles="admin" هم قرار دادم. ولی وقتی وارد سایت میشم بدون در نظر گرفتن تنظیمات همه منو ها نمایش داده میشه. :گریه::گریه:
کسی میدونه دیگه چه کاری باید انجام بدم.من که دیگه عقلم به جایی قد نمیده.:گیج::گیج::گیج::عصبانی++ :

h_r_sh
پنج شنبه 10 بهمن 1387, 00:41 صبح
در رويداد MenuItemDataBound مربوط به منو كد زير را وارد كنيد:


string txt = e.Item.Text;
if (txt == "Admin")
e.Item.Parent.ChildItems.Remove(e.Item);

alireza643
جمعه 11 بهمن 1387, 09:57 صبح
سلام


در رويداد MenuItemDataBound مربوط به منو كد زير را وارد كنيد

دوست من فرمایش شما نمیتونه صحیح باشه. اول که من با text کاری ندارم بلکه با role کار دارم. بعدش هم این امکان SecurityTrimmingEnabled برای همین کاره که مجبور نشیم تو MenuItemDataBound چیزی بنویسیم.از توجه شما ممنونم.
دوستان کسی راه دیگه به ذهنش نمیرسه؟

mh19842008
جمعه 11 بهمن 1387, 14:30 عصر
پیشنهاد:میتونی از master page استفاده کنی

alireza643
جمعه 11 بهمن 1387, 17:27 عصر
سلام


پیشنهاد:میتونی از master page استفاده کنی

از توجهتون ممنون. ولی این هم پاک کردن صورت مسئله میشه نه حل کردنش.
قاعدتا کد من باید کار کنه. ولی مشکلش نمیدونم چیه. راه حل باید پیدا کنم براش. اگه پیدا کردم همینجا مینویسم.
مرسی

h_r_sh
شنبه 12 بهمن 1387, 14:43 عصر
سلام

دوست من فرمایش شما نمیتونه صحیح باشه. اول که من با text کاری ندارم بلکه با role کار دارم. بعدش هم این امکان SecurityTrimmingEnabled برای همین کاره که مجبور نشیم تو MenuItemDataBound چیزی بنویسیم.از توجه شما ممنونم.
دوستان کسی راه دیگه به ذهنش نمیرسه؟

كي گفته شما با text كار داشته باش. اول role يا هر چيزه ديگه اي كه دوست داريد رو با يك شرط كنترل كنيد، اگر شرط برقرار نبود هركدام از گزينه هاي منو كه text اونها مطابق با چيزي هستند كه شما دوست نداريد، نمايش داده نشن:

protected void Menu1_MenuItemDataBound(object sender, MenuEventArgs e)
{
if (User.Identity.IsAuthenticated || User.IsInRole("Admin"))
{
}
else
{
string txt = e.Item.Text;
if (txt == "Administrator" || txt == "User Management")
e.Item.Parent.ChildItems.Remove(e.Item);
}
}