0

ログインページがあります。コードビハインドは以下のとおりです。

protected void btnLog_Click(object sender, EventArgs e)
{

    SqlConnection conn1 = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbUsers;Integrated Security=True");
    conn1.Open();

    SqlCommand cmdd = new SqlCommand("select * from Users where UserName = @user AND Password = @pass", conn1);

    SqlParameter param = new SqlParameter();
    SqlParameter param1 = new SqlParameter();

    param.ParameterName = "@user";
    param1.ParameterName = "@pass";

    param.Value = txtuser.Text;
    param1.Value = txtpass.Text;

    cmdd.Parameters.Add(param);
    cmdd.Parameters.Add(param1);

    SqlDataReader reader = cmdd.ExecuteReader();

    if (reader.HasRows)
    {
        reader.Read();
        MessageBox("Login Successful");
        clear();
    }
    else
    {
        MessageBox("Invalid Username/Password");
    }

}

2 つのサイトマップがあります。

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" 
                EnableViewState="False" IncludeStyleBlock="False" Orientation="Horizontal" 
                DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2" 
                onmenuitemdatabound="NavigationMenu_MenuItemDataBound">        
            </asp:Menu>      
            <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

            <div class="clear hideSkiplink">              
            <asp:Menu ID="Menu1" runat="server" CssClass="menu" 
                EnableViewState="False" IncludeStyleBlock="False" Orientation="Horizontal" 
                DataSourceID="SiteMapDataSource2" StaticDisplayLevels="2" 
                onmenuitemdatabound="NavigationMenu_MenuItemDataBound">        
            </asp:Menu>      
            <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" SiteMapProvider="AdminSiteMapProvider"/>

私が達成したいのは、ユーザーがログインしていないときに Menu1 が表示され、NavigationMenu が非表示になりますが、ユーザーがログインしている場合は Menu1 が非表示になり、NavigationMenu が表示されます。

C# で asp.net を使用しています。

4

2 に答える 2

0
if (reader.HasRows)
{
        reader.Read();
        // set as user authenticated 
        FormsAuthentication.SetAuthCookie(txtuser.Text, true);
        MessageBox("Login Successful");
        clear();
}

あなたのPageLoadで

protected void Page_Load(object sender, EventArgs e)
{
    if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
    {
        Menu1.Visible = false;
        NavigationMenu.Visible = true;
    }
    else
    {
        Menu1.Visible = true;
        NavigationMenu.Visible = false;
    }
}

また

protected void Page_Load(object sender, EventArgs e)
{
    bool isAuthenticated = System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
    Menu1.Visible = !isAuthenticated;
    NavigationMenu.Visible =isAuthenticated;
}
于 2013-06-09T08:36:22.540 に答える