質問

簡単なパスワードバリデーターを実行しようとしています。私はすでにJSPでそれを書いています、そしてそれは機能します。私はC#とASP.NETの初心者であり、C#で書くことで練習/学習をしたいと考えています。初心者として、私はいくつかの問題に遭遇しており、いくつかの助けを望んでいました。

私が元々うまくいったこと。それは悪い練習である回避策ですが、JavaとJSPを学ぶのに適しています。ユーザー認証を行うための回避策としてポップサーバーを使用しているだけです - 愚かですが、学ぶのは良いことです!

私が現時点で持っているのは、このクラスは、私のフォームが「アクション」として使用する.aspxファイルに保存されていると思われるこのクラスです。

class POPServer
{
    static Boolean hasLogin(string username, string password)
    {
        const bool isValid;
        using (var client = new TcpClient("host.hosty.com", 110))
        using (var stream = client.GetStream())
        using (var reader = new StreamReader(stream))
        using (var writer = new StreamWriter(stream))
        {
            writer.WriteLine("USER " + username );
            writer.WriteLine("PASS " + password );
            const string response = reader.ReadLine();
            isValid = response[ 0 ] == '+';
            writer.WriteLine("quit\n");
        }
        return isValid;
    }
}

そこで、ユーザー名とパスワードを保存するホストに接続し、このフォームに対して確認してください。

<form action="POPServer.aspx" method="post">
  <fieldset>
    <legend>Login Form</legend>
    <label for="teachername">Username:
      <input type="text" name="teachername" id="teachername" value="" />
    </label>
    <label for="teacherpass">Password:
      <input type="password" name="teacherpass" id="teacherpass" value="" />
    </label>
    <label for="teacherremember">
      <input class="checkbox" type="checkbox" name="teacherremember" id="teacherremember" checked="checked" />
      Remember me</label>
    <p>
      <input type="submit" name="teacherlogin" id="teacherlogin" value="Login" />
      &nbsp;
      <input type="reset" name="teacherreset" id="teacherreset" value="Reset" />
    </p>
  </fieldset>
</form>

私が疑問に思っているのは:

私のコードの「フォーム」は正しいですか?私のC#をASPXファイルに保存し、ユーザーがログインしようとするときに必要に応じて実行するのは正しいですか?私はこれに関する情報を見つけることができません、そして、私はあなたが実行するJSPのような構造が必要だと仮定しています:

if ( request.hasParameter( "Submit" ) )
{
    if ( POPServer.hasLogin( request.getParameter( "username" ), request.getParameter( "username" ) ) ) {
        response.location( "loginPage.aspx" );
    }
}

ユーザーが認証された後、「ログインページ」が表示され、ユーザーがリンクに持ち込まれて忘れられるのではなく、ユーザーが永続的にログインされるように、セッションデータをどのように保存しますか?

役に立ちましたか?

解決

ASP.NETをコーディングするには、2つの異なるアプローチがあります。 WebフォームMVC. 。使用しているASP.NET Webフォームを使用すると、.aspxでコードを実行できますが、通常、コードは使用されている言語、つまり.aspx.csまたは.aspxに名前が付けられたコードビハインドに配置されます。 .vb。

Code-Behindには、ページに関連付けられたクラスが含まれています。このクラスには、ページの読み込み、ボタンクリックなどに対応するイベントが含まれています。ASP.NETは、ASP:プレフィックス、つまりを使用して指定された多くの組み込みコントロールをサポートしています。 <asp:Label runat="server" ID="MyLabel" Text="My label text"/>. 。ラベルやその他の要素は、コードビハインドのIDによって参照できます。 MyLabel.Text = "My different label text";.

ASP.NETは、呼ばれるコレクションをサポートします セッション ユーザーのセッションの期間中に持続する情報を保存できます。

ただし、ASP.NETにはプロバイダーに基づいたセキュリティモデルがあることを指摘する必要があります。 ログインコントロール これは統合されており、ここで取っているアプローチよりも、セキュリティ行動をより多くの制御を提供します。あなたが見るはずです ウォークスルー:基本的なユーザーログインでASP.NET Webサイトを作成する MSDNで。

また、入手することを強くお勧めします ビジュアルスタジオ あなたがまだそれを持っていないなら。利用可能な完全な製品の時間制限試験版があります。また、より低い機能セットと呼ばれる無料のバージョンもあります 特急 エディション。

幸運を祈ります。これを学ぶことを楽しんでいただければ幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top