0

私は ASP.NET を適用した C# を使用する初心者なので、何卒ご容赦ください。

最初のコンテキスト: ユーザー名とパスワードを検証する 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>

次に、[ログイン] ボタンをクリックすると、両方のテキスト ボックスに指定された文字列が特定の文字列と比較され、両方の文字列が一致する場合、ログインは成功します (コードの 2 番目のチャンクに示すように)。

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ますか? また、必要な場合、またはこの新しいクラスを使用せざるを得ない場合、どうすれば作成できますか?

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 が提供する参考になる入門チュートリアルが多数あります。

注意すべきもう 1 つの点は、この単語externは c# のキーワードであり、マネージ コード (つまり、CLRで実行されるコード) がアンマネージ コード (つまり、ネイティブに実行されるコード) を読み込んで実行することを示すことです。

于 2013-05-14T00:41:20.403 に答える