我是使用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
?如果有必要,或者我别无选择,只能使用这个新课程,我该如何创建呢?
答案 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中运行的代码)想要加载和执行非托管代码,(即本机运行的代码。)