我試圖運行一個簡單的密碼驗證程序。我已經在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" />
<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");
}
}
你如何存儲會話數據,以便用戶通過身份驗證後,「登錄頁」是顯示和用戶永久登錄,而不是隻是帶來了一個鏈接,然後被遺忘?
WebForms或MVC? – Prescott 2012-02-17 15:36:52
我現在正在使用WebMatrix的網頁! – 2012-02-17 15:38:56