0

我是使用 C# 和 ASP.NET 的新手,所以我请你耐心等待。

首先是上下文:我开发了一个用于验证用户名和密码的ASP页面(如第一段代码所示。对于这个问题的效果,密码框中的字符无关紧要,无关紧要) .

索引.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="Login" runat="server">
    <div><table>
    <tr>
    <td>User</td>
    <td><asp:TextBox ID="User" runat="server"></asp:TextBox></td>
    </tr>
    <tr>
    <td>Password</td>
    <td><asp:TextBox ID="Pass" runat="server"></asp:TextBox></td>
    </tr>
    <tr>
    <td></td>
    <td><asp:Button ID="LoginButton" runat="server" Text="Login" 
        onclick="LoginButton_Click" /></td>
    </tr></table>
    </div>
    </form>
    </body>
    </html>

然后单击“登录”按钮后,两个文本框中给出的字符串正在与特定字符串进行比较,如果两个字符串一致,则登录成功(如第二段代码所示)。

索引.aspx.WebDesigner.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

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

        }

        protected void LoginBoton_Click(object sender, EventArgs e)
        {
            String user = User.Text;
            String password = Pass.Text; 

            String uservalid = "Carlos";
            String passvalid = "236";

            if((user.Equals(uservalid)) && (password.Equals(passvalid)))
                Response.Redirect("Valid.aspx");
            else
                Response.Redirect("Invalid.aspx");

        }
    }
}

假设在某个时候我需要创建一个专门用于验证登录的新类(我知道它可以用 Java 完成),并且我会将它用于我的页面。在这种情况下是否有必要考虑我已经在使用Index.aspx.WebDesigner.cs?如果有必要,或者我别无选择,只能使用这个新类,我该如何创建它?

4

1 回答 1

2

在 c# 中创建类与在任何现代、强类型、OO 编程语言中创建类非常相似。首先定义类,然后实例化它。有许多不同的方法可以在您的问题中重新创建验证,这是一种。

这是类定义

public class Validator
{
  private const string Username = "Carlos";
  private const string Password = "236";

  public bool Validate(string user, string pass) 
  {
    return (user == Username && pass == Password);
  }
}

在代码中实例化和使用类(注意使用三元条件运算符而不是 if/else,这样可以使代码简洁易读)

protected void LoginBoton_Click(object sender, EventArgs e)
{
  //instantiate the class defined above
  var validator = new Validator();

  //find the next page to redirect to
  var redirectTo = validator.Validate(User.Text, Pass.Text) ? "Valid.aspx" : "Invalid.aspx";

  //redirect the user
  Response.Redirect(redirectTo);
}

C# 是一种深度语言,学习曲线平缓,您可能会从找到有关该主题的优秀教程或书籍中受益。 Microsoft 提供的许多介绍性教程可能会有所帮助。

另一件需要注意的是,这个词extern是 c# 中的一个关键字,表示托管代码(即在CLR中运行的代码)想要加载和执行非托管代码(即本机运行的代码)。

于 2013-05-14T00:41:20.403 回答