0

what i have done is login and the username appears in my masterpage in a label. what i need to do is if the logged in user has admin permission make visible controls on several child pages (including a gridview deletecontrol that is there on one child page). have be struggling to figure it out. just want to learn.

Is there a way to class all the controls under a class call admin and call from masterpage on checking user permission?

Loginpage code behind

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";
        }
    }
}

App/code code behind

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

ねえ、私はこのようなアプリケーションを 1 つ作成しました。あなたがする必要があるのは、管理者と他のユーザーの両方のために別々の Web ページ (つまり、ログイン ページの後) を作成することです。次に、資格情報を使用して管理者を簡単に認証し、それぞれのページにリダイレクトできます。そこには、必要に応じていくつかのコントロールを配置できます。

また、管理者が他のユーザーの子ページに何を表示するかをモジュールに許可できるアクセス制御ボードのようなアプリケーションを作成することに関心がある場合は、返信でお知らせください。

于 2013-01-10T06:06:37.180 に答える