如何使用C#从Asp.Net中的特定用户的主页面的菜单控件中禁用菜单项....因为我在登录页面中声明了会话变量 [英] How To Disable The Menu Item From Menu Control of Master Page For Particular User In Asp.Net Using C#....As I Had Declared Session Variable In Login Page
本文介绍了如何使用C#从Asp.Net中的特定用户的主页面的菜单控件中禁用菜单项....因为我在登录页面中声明了会话变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用c#禁用asp.net中特定用户的菜单控件中的菜单项...因为我在LogIn.aspx页面中声明了会话变量,如下所示,其中LogIn Page是我的起始页面..并且在主页面中我写了一些条件,下面提到这段代码...
LogIn.aspx.cs
how to disable the menu item from Menu Control for particular user in asp.net using c#...as i had declared session variable in LogIn.aspx page as follows where LogIn Page is my starting Page.. and in Master Page i wrote some condition which is mention below this code...
LogIn.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
public partial class LogIn : System.Web.UI.Page
{
SqlCommand cmd;
SqlConnection sqlconn;
SqlDataAdapter da;
DataSet ds;
MasterPage p1 = new MasterPage();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["ODC"].ConnectionString.ToString());
sqlconn.Open();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
sqlconn.Close();
}
}
}
protected void btnsubmit_Click1(object sender, EventArgs e)
{
int i = 0;
try
{
sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["ODC"].ConnectionString.ToString());
sqlconn.Open();
SqlDataAdapter da = new SqlDataAdapter("Select Eid,Designation from Emp_Master where Eid='" + logdll.SelectedItem.Value + "' and Password='" + txtpswd.Text + "'", sqlconn);
ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
string utype = ds.Tables[0].Rows[0][1].ToString();
Response.Write("<script language='javascript'>alert('hello')</script>");
switch (utype)
{
case "Admin":
utype = logdll.SelectedItem.Text;
Session["Eid"] = logdll.SelectedItem.Value;
Session["abcd"] = "admin";
Response.Redirect("AdminHomePage.aspx");
break;
case "PM":
utype = logdll.SelectedItem.Text;
Session["Eid"] = logdll.SelectedItem.Value;
Session["abcd"] = "PM";
Response.Redirect("Project_Details.aspx");
break;
case "Emp":
utype = logdll.SelectedItem.Text;
Session["Eid"] = logdll.SelectedItem.Value;
Session["abcd"] = "Emp";
Response.Redirect("Work_Master.aspx");
break;
default:
Label11.Visible = true;
Label11.Text = " Invalid Password! Please retype the Password";
Session["abcd"] = "def";
break;
}
Response.Write("<script language='javascript'>alert('User Login successful !')</script>");
}
else
{
Response.Write("<script language='javascript'>alert('Please enter valid Eid and Password')</script>");
i = 1 + 1;
if (i == 4)
{
Response.Write("<script language='javascript'>alert('Try again')</script>");
}
else
{
logdll.SelectedItem.Value = logdll.SelectedItem.Text;
txtpswd.Text = "";
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
sqlconn.Close();
}
}
}
MasterPage.aspx.cs
MasterPage.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
var menu = Page.Master.FindControl("Menu1") as Menu;
if (!IsPostBack)
{
if (Session["abcd"]== null)
{
//menu.Items.Remove(menu.FindItem("Reports"));
//menu.Items.Remove(menu.FindItem("Master"));
}
else if(Session["abcd"]=="admin")
{
menu.Items.Remove(menu.FindItem("Employee"));
menu.Items.Remove(menu.FindItem("Reports"));
}
/* MenuItemCollection menuItems = Menu1.Items;
MenuItem menuItem = new MenuItem();
foreach (MenuItem item in menuItems)
{
if (item.Text == "Home")
menuItem = item;
}
menuItems.Remove(menuItem);*/
}
}
}
但是它没有用......请告诉我在主页面上做了什么改变....
已添加预
标签。
[/编辑]
推荐答案
您需要为不同的用户创建角色
http://www.aspsnippets.com/Articles /Implement-Role-based-security-Page-access-and-ShowHide-Menu-items-based-on-Role-in-ASPNet.aspx [ ^ ]
You need to create roles for different users
http://www.aspsnippets.com/Articles/Implement-Role-based-security-Page-access-and-ShowHide-Menu-items-based-on-Role-in-ASPNet.aspx[^]
当您点击按钮时,页面加载
。但是您已在母版页中的IsPostBack
中编写了这些代码。没有IsPostBack
中的代码并测试。
放入调试器
在测试时知道事件是如何循环的。
When you click on a Button,Page Loads
. But you have written those codes inIsPostBack
in Master Page. Don't have the code insideIsPostBack
and test.
Putdebuggers
while testing to know how the events cycles.
这篇关于如何使用C#从Asp.Net中的特定用户的主页面的菜单控件中禁用菜单项....因为我在登录页面中声明了会话变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文