在Page_Load事件中进行表单身份验证

时间:2011-11-28 14:24:19

标签: c# asp.net forms-authentication

我有一个名为frmLogin的表单。我在Login_1Authenticate事件处理程序中有代码,用于检查输入的用户名和密码的安全级别。然后,根据安全级别,它将显示或不显示我的主窗体上名为frmMain的链接。如果它是安全级别“A”我想要完全控制,但如果它的安全级别为“U”,那么我想从frmMain中删除链接按钮和图像按钮。其中两个要禁用的示例是:

linkbtnEmployee
imgbtnNewEmployee

linkbtnViewUserActivity
imgbtnViewUserActivity

我需要编写Page_Load事件的代码,但我不确定如何编写它。 这是我的frmLogin页面的代码:

public partial class frmLogin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {

        dsUser dsUserLogin;


        string SecurityLevel;


        dsUserLogin = clsDataLayer.VerifyUser(Server.MapPath("PayrollSystem_DB.mdb"),
                         Login1.UserName, Login1.Password);


        if (dsUserLogin.tblUserLogin.Count < 1)
        {
            e.Authenticated = false;
            return;
        }


        SecurityLevel = dsUserLogin.tblUserLogin[0].SecurityLevel.ToString();


        switch (SecurityLevel)
        {

            case "A":
                // Add your comments here
                e.Authenticated = true;
                Session["SecurityLevel"] = "A";
                break;
            case "U":
                // Add your comments here
                e.Authenticated = true;
                Session["SecurityLevel"] = "U";
                break;
            default:
                e.Authenticated = false;
                break;
        }
    }
}

2 个答案:

答案 0 :(得分:2)

好吧,如果你想让它们隐形使用:

linkbtnEmployee.Visible = false;
imgbtnNewEmployee.Visible = false;

答案 1 :(得分:0)

请阅读http://msdn.microsoft.com/en-us/library/ff647070.aspx

理解“ASP.NET 2.0中的表单身份验证”