2012-02-17 13 views
0

に変換する単純なパスワードバリデーターを実行しようとしています。私はすでにJSPでそれを書いており、それは動作します。私はC#とASP.NETの初心者であり、C#で書くことで練習したり学びたいと思っています。初心者として、私はいくつかの問題にぶつかりつつあり、助けを求めていました。JavaサーバーページをC#

元々はうまくいきました。それは悪い習慣であるが、JavaやJSPを学ぶのに適した回避策です。これは、ユーザー認証を行うための回避策としてPOPサーバーを使用しているだけです。

現時点では、私のフォームが "アクション"として使用する.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"); 
    } 
} 

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

+0

WebFormsまたはMVC? – Prescott

+0

私は現時点でWebMatrixでWebページを使用しています! –

答えて

1

ASP.NETをコーディングする異なる方法は、Web FormsMVCです。使用しているASP.NET Webフォームを使用すると、.aspxでコードを実行できますが、通常、コードは使用されている言語、つまり.aspx.csまたは.aspxという名前のコードビハインドに配置されます.vb。

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

ASP.NETは、ユーザーのセッション中に情報が保存されるSessionというコレクションをサポートしています。

ASP.NETにはプロバイダに基づくセキュリティモデルがあり、login controlsは統合されており、ここで取り上げているアプローチよりもセキュリティの動作をより詳細に制御できることを指摘しておきます。 MSDNにWalkthrough: Creating an ASP.NET Web Site with Basic User Loginが表示されます。

まだ持っていない場合はVisual Studioにすることを強くお勧めします。完全な製品のタイムリミットトライアルエディションがあります。 Expressと呼ばれる機能セットの少ない無料のバージョンもあります。

幸運と私はあなたがこれを学ぶのを楽しみにしています。