0

我所做的是登录,用户名出现在我的母版页中的标签中。我需要做的是,如果登录用户具有管理员权限,则可以在多个子页面上设置可见控件(包括一个子页面上的 gridview deletecontrol)。一直在努力弄清楚。只是想学习。

有没有办法在类调用管理员下对所有控件进行分类,并从母版页调用检查用户权限?

后面的登录页面代码

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.Adapters;

public partial class login1 : System.Web.UI.Page
{

    public void Page_Load(object sender, EventArgs e)
    {

    }

    protected void LoginButton_Click(object sender, EventArgs e)
    {        
        DataSet ds = new DataSet();
        ds = WCGSQL.showdata("select * from Login where Username='" + UserName.Text + "' and Password='" + Password.Text + "'");
        if (ds.Tables[0].Rows.Count != 0)
        {

            Session["Username"] = UserName.Text;
            Response.Redirect("Home.aspx");

        }
        else
        {
            FailureText.Visible = true;
            FailureText.Text = "Invalid Login";
        }
    }
}

应用程序/代码背后的代码

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public class WCGSQL
{
    static SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|WCG.mdf;Integrated Security=True;User Instance=True");
    static public Boolean savedata(string qurt)
    {
        try
        {
            SqlCommand cmd = new SqlCommand(qurt, con);
            con.Open();
            cmd.ExecuteNonQuery();
            return true;
        }
        catch
        {
            return false;
        }
        finally
        {
            con.Close();
        }


    }

    static public DataSet showdata(string qurt)
    {
        DataSet ds = new DataSet();
        try
        {
            SqlDataAdapter adp = new SqlDataAdapter(qurt, con);
            adp.Fill(ds);
            return ds;
        }
        catch
        {
            return ds;
        }
    }

}
4

3 回答 3

1

您想使用LoginView控件。请参阅ASP.NET 登录控件概述以了解整个套件。


来自 MSDN 的示例:

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
        <form id="form1" runat="server">
            <p>
                <asp:LoginStatus id="LoginStatus1" runat="server"></asp:LoginStatus></p>
            <p>
                <asp:LoginView id="LoginView1" runat="server">
                    <AnonymousTemplate>
                        Please log in for personalized information.
                    </AnonymousTemplate>
                    <LoggedInTemplate>
                        Thanks for logging in 
                        <asp:LoginName id="LoginName1" runat="Server"></asp:LoginName>.
                    </LoggedInTemplate>
                    <RoleGroups>
                        <asp:RoleGroup Roles="Admin">
                            <ContentTemplate>
                                <asp:LoginName id="LoginName2" runat="Server"></asp:LoginName>, you
                                are logged in as an administrator.
                            </ContentTemplate>
                        </asp:RoleGroup>
                    </RoleGroups>
                </asp:LoginView></p>
        </form>
    </body>
</html>
于 2013-01-10T06:04:23.820 回答
0
if (HttpContext.Current.User.IsInRole("member"))
{
  //enable/disable here
}
于 2013-01-10T05:59:24.703 回答
-1

嘿,我做了一个这样的应用程序。您需要做的是为管理员和其他用户创建单独的网页(即登录页面后)。然后,您可以通过他的凭据轻松地对管理员进行身份验证并重定向到相应的页面。您可以根据需要在那里放置一些控件。

如果您关心的是创建一个像控制访问板这样的应用程序,管理员可以在其中授予模块权限以显示在其他用户的子页面上显示的内容,然后通过您的回复告诉我。

于 2013-01-10T06:06:37.180 回答