+++++++อยากทราบวิธีทำให้เมนูโชว์ตามสิทธิผู้ใช้+++++++
ไม่มีใครช่วยเลยเหรอครับ
Date :
2011-05-20 14:14:09
By :
l3lackEagle
เอา code มาแปะสิครับ
ถ้าเขียนด้านหน้าไม่ได้ ก็ไปเขียนด้านหลังครับ
Date :
2011-05-20 14:20:10
By :
13crowns
อันนี้ครับผมทำในส่วนของ masterPage อะครับ ที่เป็นสีแดงคือส่วนของ menu อะครับ
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<link type="text/css" href="~/Scripts/menu/menu.css" rel="stylesheet" />
<script language="javascript" type="text/javascript" src="Scripts/jquery-1.6.1.min.js"></script>
<script language="javascript" type="text/javascript" src="Scripts/jquery-1.4.1-vsdoc.js"></script>
<script language="javascript" type="text/javascript" src="Scripts/jquery-1.6.1.js"></script>
<script language="javascript" type="text/javascript" src="Scripts/menu/jquery.js"></script>
<script language="javascript" type="text/javascript" src="Scripts/menu/menu.js"></script>
<asp:ContentPlaceHolder id="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div class="page">
<div class="header">
<div class="title">
<h1>
<br />
</h1>
</div>
<div class="clear hideSkiplink">
<table align="center">
<tbody>
<td width="auto">
<div id="menu">
<ul class="menu">
<li><a href="http://sanook.com" class="parent"><span>Home</span></a>
<div><ul>
<li><a href="#" class="parent"><span>Sub Item 1</span></a>
<div><ul>
<li><a href="#" class="parent"><span>Sub Item 1.1</span></a>
<div><ul>
<li><a href="#"><span>Sub Item 1.1.1</span></a></li>
<li><a href="#"><span>Sub Item 1.1.2</span></a></li>
</ul></div>
</li>
<li><a href="#"><span>Sub Item 1.2</span></a></li>
<li><a href="#"><span>Sub Item 1.3</span></a></li>
<li><a href="#"><span>Sub Item 1.4</span></a></li>
<li><a href="#"><span>Sub Item 1.5</span></a></li>
<li><a href="#"><span>Sub Item 1.6</span></a></li>
<li><a href="#" class="parent"><span>Sub Item 1.7</span></a>
<div><ul>
<li><a href="#"><span>Sub Item 1.7.1</span></a></li>
<li><a href="#"><span>Sub Item 1.7.2</span></a></li>
</ul></div>
</li>
</ul></div>
</li>
<li><a href="#"><span>Sub Item 2</span></a></li>
<li><a href="#"><span>Sub Item 3</span></a></li>
</ul></div>
</li>
<li><a href="#"><span>Product Info</span></a>
<div><ul>
<li><a href="#" class="parent"><span>Sub Item 1</span></a>
<div><ul>
<li><a href="#"><span>Sub Item 1.1</span></a></li>
<li><a href="#"><span>Sub Item 1.2</span></a></li>
</ul></div>
</li>
<li><a href="#" class="parent"><span>Sub Item 2</span></a>
<div><ul>
<li><a href="#"><span>Sub Item 2.1</span></a></li>
<li><a href="#"><span>Sub Item 2.2</span></a></li>
</ul></div>
</li>
<li><a href="#"><span>Sub Item 3</span></a></li>
<li><a href="#"><span>Sub Item 4</span></a></li>
<li><a href="#"><span>Sub Item 5</span></a></li>
<li><a href="#"><span>Sub Item 6</span></a></li>
<li><a href="#"><span>Sub Item 7</span></a></li>
</ul></div>
</li>
<li><a href="#"><span>Help</span></a></li>
<li class="last"><a href="#"><span>Contacts</span></a></li>
</ul>
</div> </td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
</div>
<div class="clear">
</div>
</div>
<div class="footer">
</div>
</form>
</body>
</html>
Date :
2011-05-20 17:09:17
By :
l3lackEagle
อือ อยากถามว่าเขียนด้านหลังเขียนอย่างไงครับ เขียนได้ด้วยเหรอครับผม
Date :
2011-05-20 17:15:08
By :
l3lackEagle
เงียบไปหมดเลย ไม่มีแนวทางเลยเหรอครับที่จะทำได้อะ
Date :
2011-05-21 20:30:47
By :
l3lackEagle
การเขียนเพจ ASP.NET มีโครงสร้าง 2 รูปแบบ
1. Code Inline
โค้ดคำสั่งสำหรับออกแบบเพจกับโค้ดคำสั่งสำหรับควบคุมการทำงานจะอยู่ในไฟล์เดียวกัน คือไฟล์ .aspx
2. Code Behind
จะแยกโค้ดคำสั่งควบคุมการทำงานออกจากคำสั่งแสดงผล คือไฟล์ .aspx จะเก็บคำสั่งส่วนแสดงผล ส่วนคำสั่งควบคุมการทำงานจะเก็บในไฟล์ .aspx.vb หรือ .aspx.cs
ด้านหน้าคือ .aspx
ด้านหลังคือ .aspx.vb หรือ .aspx.cs
ส่วนการทำ Menu ตามสิทธิผู้ใช้
1. ตรวจสอบ Username และ Password ว่ามีในระบบ
2. ตรวจสอบว่า User นั้นมีสิทธิเป็นอะไร เช่น admin , member
3. Menu ต้องมี 2 รูปแบบ รูปแบบแรกสำหรับ admin รูปแบบสองสำหรับ member ให้แสดงตามสิทธิของผู้ใช่ที่ได้ Login เข้ามา
เช่น
if(author = "admin") {
แสดงเมนูของ admin
}
else if(author = "member") {
แสดงเมนูของ member
}
Date :
2011-05-23 13:53:08
By :
newDev
ตัวอย่างการใช้ WebControl LoginView ช่วยในการทำเมนู
ที่จะแสดงเมนูต่างกันระหว่างผู้ใช้ที่ยังไม่ Login
กับผู้ใช้ที่ Login แล้ว
Menu
<asp:LoginView id="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Menu ID="Menu1" runat="server" >
<Items>
<asp:MenuItem Text="Register" NavigateUrl="~/Register.aspx" />
<asp:MenuItem Text="Login" NavigateUrl="~/Login.aspx" />
</Items>
</asp:Menu>
</AnonymousTemplate>
<LoggedInTemplate>
<asp:Menu ID="MainMenuLoggedIn" runat="server">
<Items>
<asp:MenuItem Text="Somewhere" NavigateUrl="~/Somewhere.aspx"/>
<asp:MenuItem Text="Someplace" NavigateUrl="~/Someplace.aspx"/>
</Items>
</asp:Menu>
</LoggedInTemplate>
</asp:LoginView>
Date :
2011-05-23 14:33:31
By :
watcharop
ต้องขอบคุณพี่ๆที่เข้ามาตอบนะครับ
แล้วคือที่จะถามว่า มันสามารถที่จะทำได้มั้ยครับ menu แบบ dynamic
คือแต่ละคนจะเห็นเมนูไม่เท่ากันอะครับ คือตอนนี้ที่ทำ ทำ menu แบบ fix คือมีอะไรบ้างๆ
โชว์มาหมดเลย แต่คืออยากจะเขียนโดยดูก่อนว่าใครคนไหนเข้ามาแล้วค่อย gen menu ขึ้นมา
ประวัติการแก้ไข 2011-05-23 16:05:40 2011-05-23 16:05:44
Date :
2011-05-23 16:04:50
By :
l3lackEagle
ก็คือทำตามที่ผมบอกนั่นแหละครับ
Menu จะเปลี่ยนไปตามการ Login ของ User ว่ามีสิทธิแบบไหน เรียกว่าเป็นแบบ Dynamic
โดยให้ User Login เข้ามาก่อน แล้วต้องไปตรวจในฐานข้อมูลว่ามีสิทธิเป็นอะไร
จากนั้นก็ให้แสดง Menu ตามสิทธิของ User คนนั้น
Date :
2011-05-23 16:57:46
By :
newDev
LoginView สามารถแยกแยะตาม Role หรือ User ได้
แต่ถ้า Menu มันยิบย่อยจริงๆ วิธีนี้คงไม่ไหว
Code (ASP)
<asp:LoginView id="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Menu ID="Menu1" runat="server" >
<Items>
<asp:MenuItem Text="Register" NavigateUrl="~/Register.aspx" />
<asp:MenuItem Text="Login" NavigateUrl="~/Login.aspx" />
</Items>
</asp:Menu>
</AnonymousTemplate>
<LoggedInTemplate>
<asp:Menu ID="MainMenuLoggedIn" runat="server">
<Items>
<asp:MenuItem Text="Somewhere" NavigateUrl="~/Somewhere.aspx"/>
<asp:MenuItem Text="Someplace" NavigateUrl="~/Someplace.aspx"/>
</Items>
</asp:Menu>
</LoggedInTemplate>
</asp:LoginView>
<asp:LoginView runat="server">
<RoleGroups>
<asp:RoleGroup Roles="Administrators">
<ContentTemplate>
<asp:Menu ID="AdminMenu" runat="server">
<Items>
<asp:MenuItem Text="Somewhere1" NavigateUrl="~/Somewhere1.aspx"/>
<asp:MenuItem Text="Someplace1" NavigateUrl="~/Someplace1.aspx"/>
</Items>
</asp:Menu>
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
<asp:LoginView runat="server">
<RoleGroups>
<asp:RoleGroup Roles="Accounting">
<ContentTemplate>
<asp:Menu ID="AccountingMenu" runat="server">
<Items>
<asp:MenuItem Text="AccountingMenu1" NavigateUrl="~/Accounting1.aspx"/>
<asp:MenuItem Text="AccountingMenu2" NavigateUrl="~/Accounting2.aspx"/>
</Items>
</asp:Menu>
</ContentTemplate>
</asp:RoleGroup>
</RoleGroups>
</asp:LoginView>
Date :
2011-05-23 17:24:30
By :
watcharop
แล้วพี่คิดว่ามันจะมีวิธีอื่นหรือที่เหมาะสม พอจะแนะนำได้มั้ยครับ เพราะ role มันมีเป็น 10 กว่าเกือบ 20 role เลยอะครับ
Date :
2011-05-23 17:46:09
By :
l3lackEagle
Load balance : Server 02