ASP.NET页面使用的Extern类

时间:2013-05-13 23:41:16

标签: c# asp.net class

我是使用C#应用ASP.NET的新手,所以我问你所有的耐心。

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

Index.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>

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

Index.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?如果有必要,或者我别无选择,只能使用这个新课程,我该如何创建呢?

1 个答案:

答案 0 :(得分: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);
  }
}

要在代码中实例化和使用该类(请注意使用ternary conditional operator而不是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#是一种语言温和,学习曲线温和的语言,您可以从找到有关该主题的优秀教程或书籍中受益。 There are a number of introductory tutorials from Microsoft that may be helpful.

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