有关保护页面的任何想法吗?

时间:2011-07-18 07:07:47

标签: c# asp.net visual-studio-2010 login stack-overflow

嘿,伙计们,我有一个问题。

你们中的任何人都知道如何使用直接网址示例中的保护页面 http://yoururlhere/administration/edit.aspx。您可以在此处编辑来自留言簿的某些消息 但它需要得到保护。我已经有了,但是如果你直接将它输入你的地址栏,它会给你带来帮助。那很糟。顺便说说我正在学习ASP.NET :) 这是我的代码。

 protected void Button1_Click(object sender, EventArgs e)
{

    try
    {
        string cnnString = ConfigurationManager.ConnectionStrings["Stefan"].ConnectionString;

        using (SqlConnection con = new SqlConnection(cnnString))
        using (SqlCommand cmd = new SqlCommand("select [Username],[Password] from Admin where [Username] = @Username and [Password] = @Password", con))
        {
            string Username = (textUsername.Text.Length > 0) ? textUsername.Text : null;
            string Password = (TextPassword.Text.Length > 0) ? TextPassword.Text : null;

            cmd.Parameters.Add("@Username", System.Data.SqlDbType.VarChar).Value = textUsername.Text;
            cmd.Parameters.Add("@Password", System.Data.SqlDbType.VarChar).Value = TextPassword.Text;

            con.Open();

            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                if (dr.Read())
                    if (Page.IsValid)
                    {

2 个答案:

答案 0 :(得分:0)

查看基于表单的身份验证,这将解决此问题。如果您在VS2010中设置了一个新的MVC / Webform项目,您将找到一个预先配置的示例。

答案 1 :(得分:0)

是。首先,您应该使用ASP.NET Membership和Roles系统来控制对您不希望未经授权的用户访问的页面的访问。

请尝试从这里开始:

http://weblogs.asp.net/scottgu/archive/2006/05/07/ASP.NET-2.0-Membership-and-Roles-Tutorial-Series.aspx

其次,如果您想阻止用户直接到达页面(即使他们被授权正常访问页面),那么您需要添加某种类型的测试,例如设置会话变量和检查它在你需要测试的页面的OnLoad中。