我试图运行一个简单的密码验证程序。我已经在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