PDA

View Full Version : استفاده صحیح از مسترپیج



میلاد قاضی پور
چهارشنبه 20 بهمن 1389, 23:08 عصر
سلام . من توی سایتم یک قسمت ورود کاربر دارم که هم میتونه ادمین باشه و هم کاربر عادی سایت. برای حالت بدون ورود به سایت و ورود با ادمین و ورود با کاربر عادی صفحات مستر جداگانه طراحی کنم یا یکی کفایت میکنه ؟
مثلا اگه بخوام یکی باشه باید هایپر لینک "ورود به سایت" بعد از وارد شدن هر کاربر ناپدید بشه و لینکهای مربوط به مدیریت اطلاعات پیدا بشه . پس همه ی این امکانات باید توی یک مستر قرار داده بشه و فقط ویزیبلشون تغییر کنه . اینجوری صحیح هست یا مسترهای جدا گانه باشه؟
روش بهتری هم هست ؟ چون من سایت طراحی نکردم تا حالا.

ricky22
پنج شنبه 21 بهمن 1389, 06:51 صبح
اگر VIEW مدیر با VIEW کاربر خیلی فرق دارد از 2 Master Page استفاده کنید.

actros
پنج شنبه 21 بهمن 1389, 07:50 صبح
من از membership database استفاده میکنم.
واسه Login یه صفحه مشخص دارم.همه کاربرها و مدیرا از همین صفحه وارد میشن.
تو فوتر MasterPage چنین کدی نوشتم:



<div id="Footer">
<asp:LoginName ID="LoginName1" runat="server" FormatString="Logged in as {0}" />
<asp:LoginView ID="LoginView1" runat="server">
<LoggedInTemplate>
<asp:LoginStatus ID="LoginStatus1" runat="server" />
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Managers">
<ContentTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text="Manege Site" NavigateUrl="~/Managment/Default.aspx"></asp:HyperLink> or
<asp:LoginStatus ID="LoginStatus2" runat="server" />
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
</div>


اگه کسی فرضا با Role مدیر وارد سایت بشه چنین چیزی در فوتر MasterPage ظاهر میشه:
با کلیک روی Manage سایت وارد پوشه Managment میشه. همه امکانات مدیر تو این پوشه قرار داده شده وکسی که Role لازم رو نداشته باشه نمی تونه وارد بشه.

http://up.iranblog.com/images/147xh1bhzk3s6exbvczl.png

و اگه کابر معمولی (که عضو هیچ Role ئی نیست ) Log in کنه چینی چیزی میبینه.
http://up.iranblog.com/images/opx2f7qrsmbzna7tprae.png

اگر هم Log in نکرده باشه هیچی تو فوتر نمیبینه.


ساخت چندین MasterPage و پنهان کردن لینک ها کار درستی نیست.
نمی دونم شما اصلا از membership database استفاده میکنی یا نه؟

میلاد قاضی پور
پنج شنبه 21 بهمن 1389, 08:32 صبح
من از membership database استفاده میکنم.
واسه Login یه صفحه مشخص دارم.همه کاربرها و مدیرا از همین صفحه وارد میشن.
تو فوتر MasterPage چنین کدی نوشتم:



<div id="Footer">
<asp:LoginName ID="LoginName1" runat="server" FormatString="Logged in as {0}" />
<asp:LoginView ID="LoginView1" runat="server">
<LoggedInTemplate>
<asp:LoginStatus ID="LoginStatus1" runat="server" />
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Managers">
<ContentTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text="Manege Site" NavigateUrl="~/Managment/Default.aspx"></asp:HyperLink> or
<asp:LoginStatus ID="LoginStatus2" runat="server" />
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
</div>


اگه کسی فرضا با Role مدیر وارد سایت بشه چنین چیزی در فوتر MasterPage ظاهر میشه:
با کلیک روی Manage سایت وارد پوشه Managment میشه. همه امکانات مدیر تو این پوشه قرار داده شده وکسی که Role لازم رو نداشته باشه نمی تونه وارد بشه.

http://up.iranblog.com/images/147xh1bhzk3s6exbvczl.png

و اگه کابر معمولی (که عضو هیچ Role ئی نیست ) Log in کنه چینی چیزی میبینه.
http://up.iranblog.com/images/opx2f7qrsmbzna7tprae.png

اگر هم Log in نکرده باشه هیچی تو فوتر نمیبینه.


ساخت چندین MasterPage و پنهان کردن لینک ها کار درستی نیست.
نمی دونم شما اصلا از membership database استفاده میکنی یا نه؟
نه استفاده نکردم . من چطوری باید این شروط رو که گفتید بررسی کنم ؟کاربر عادی است ، ... ادمین هست ،...
جاوا اسکریپته یا...
اگه از هایپر لینک مخفی استفاده نکنم چطوری باید اینکارو بکنم ؟

actros
جمعه 22 بهمن 1389, 02:11 صبح
نه استفاده نکردم . من چطوری باید این شروط رو که گفتید بررسی کنم ؟کاربر عادی است ، ... ادمین هست ،...
جاوا اسکریپته یا...
اگه از هایپر لینک مخفی استفاده نکنم چطوری باید اینکارو بکنم ؟

حتما پیشنهاد میکنم WSAT:Webstie Administration Tools و membership دیتابیس رو یادبگیری (خیلی سادست.همش ویزارده)

فرض میکنم شما WSAT رو یادگرفتی و میخای سناریو ئی که گفتی پیاده کنی:
برای مثال شما 2 تا Role داری به نام های َAdmin و Manager و یه سری هم کاربر آزاد که میخای برای هر کدوم یه سری ابزارها (مثلا هایپرلینک) رو نمایش بدی.
برای این کار کافیه به چنین کدی نیاز داری:


<div id="Div1">
<asp:LoginName ID="LoginName2" runat="server" FormatString="خوش آمدید : {0}" />
<asp:LoginView ID="LoginView2" runat="server">
<LoggedInTemplate>
<asp:LoginStatus ID="LoginStatus1" runat="server" />
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Managers">
<ContentTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text="برو صفحه مدیریت" NavigateUrl="~/AdminPage/Default.aspx"></asp:HyperLink>
or
<asp:LoginStatus ID="LoginStatus2" runat="server" />
</ContentTemplate>
</asp:RoleGroup>

<asp:RoleGroup Roles="Managers">
<ContentTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Text="برو بخش مدیریت" NavigateUrl="~/Managment/Default.aspx"></asp:HyperLink>
or
<asp:LoginStatus ID="LoginStatus2" runat="server" />
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
</div>در رابطه با کنترل LoginName وقتی کسی لاگین میکنه اسم طرف جای {0} میشینه.
کلا چیز پیچیده ای نیست هرجاش رو نفهمیدی بگو برات توضیح بدم.

برای هر Role یه فولدر درست میکنی و صفحات مربوطه رو توش قرار میدی.اینطوری تنها اعضای همون Role اجازه دسترسی به اون صفحات رو خواهند داشت.

PM ات رو هم چک کن.

mehrdad85
شنبه 23 بهمن 1389, 09:13 صبح
اقا ما هم کمک میخایم
میشه لطف کنید از wizard ها عکس بذارید که دستمون راه بیافته؟

ممنونت میشم این کارو بکنی

مرسی

صادق صدقی
شنبه 23 بهمن 1389, 10:33 صبح
سلام
شرط اینکه یوزر ادمین هست یا نه


if(user.IsUserInRole("Admin")


خیلی راحته
مگه شما با رول ها کار نکردی؟