如何使用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

查看:56
本文介绍了如何使用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 in IsPostBack in Master Page. Don't have the code inside IsPostBack and test.

Put debuggers while testing to know how the events cycles.


这篇关于如何使用C#从Asp.Net中的特定用户的主页面的菜单控件中禁用菜单项....因为我在登录页面中声明了会话变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆