PDA

View Full Version : سوال: مشکل در کجاست؟



farhadfery
چهارشنبه 09 بهمن 1387, 19:27 عصر
سلام
دوستان لطفا کمک کنید
من صفحه admin که در پوشه admin قرار دارد را می خواهم فقط گروه خاصی لینک انرا در menu ببینند و به ان دسترسی داشته باشند. برای این کار
ابتدا نقش admin را ایجاد کردم
و در sitemapنوشتم:


<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="Default.aspx" title="home" >
<siteMapNode url="admin/admin.aspx" title="admin" roles="admin" />
</siteMapNode>
</siteMap>

درwebconfig اصلی هم:



<?xml version="1.0" encoding="utf-8"?>
<configuration >
<system.web>
<roleManager enabled="true" />
<authentication mode="Forms" />
</system.web>
</configuration>
و درwebconfig که در پوشه admin قرار دارد :



<configuration>
<system.web>
<authorization>
<deny users="*" />
</authorization>
</system.web>
<location path="Admin.aspx">
<system.web >
<authorization>
<allow roles="Admin"/>
</authorization>
</system.web>
</location>
</configuration>
مشکل اینکه لینک صفحه ادمین برای همه قابل نمایش است البته قابل دسترس نیست
چه کار کنم که این لینک فقط برای ادمین نشان داده شود؟:متفکر::متفکر:

h_r_sh
چهارشنبه 09 بهمن 1387, 20:44 عصر
در رويداد MenuItemDataBound مربوط به Menu كد زير را وارد كنيد:



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



Page5 مثال است. به جاي آن مي توانيد هر صفحه ي ديگري را قرار دهيد.

farhadfery
پنج شنبه 10 بهمن 1387, 13:48 عصر
در رويداد MenuItemDataBound مربوط به Menu كد زير را وارد كنيد:


Page5 مثال است. به جاي آن مي توانيد هر صفحه ي ديگري را قرار دهيد.


سلام

می شه در مورد این کد یه توضیحی بدهید ؟

h_r_sh
پنج شنبه 10 بهمن 1387, 14:15 عصر
در رويداد Menu با يك شرط تست مي كنيد كه آيا كاربر وارد شده مدير است يا خير؟ و به عنوان حاصل شرط همين رويداد را اجرا مي كنيد. يعني اگر كاربر وارد شده مدير نباشد و يا دسترسي هاي مدير را نداشته باشد (شما بايد قبلا اين كار را در قسمت Membership انجام داده باشيد) يك يا چند آيتم از آيتمهاي منو براي او نمايش داده نمي شود:


protectedvoid 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);
}
}