如何检查用户是否正确书写了用户名和密码?

问题描述:

我正在使用名为Scans.dbml的Linq-to-SQL类。如何检查用户是否正确书写了用户名和密码?

那堂课,我拖着一个表叫用户(用户名,密码,角色)到图形区域,现在我可以通过UserRepository类访问用户对象:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Scanner.Classes 
{ 
    public class UserRepository 
    { 
     private ScansDataContext db = new ScansDataContext(); 

     public User getUser(string username) 
     { 
      return db.Users.SingleOrDefault(x => x.username == username); 
     } 

     public bool exists(string username) 
     { 

     } 
    } 
} 

现在在我的登录表单,我想用这个Linq-to-SQL的优点来完成所有与数据相关的活动。

UserRepository users = new UserRepository(); 

    private void btnLogin_Click(object sender, EventArgs e) 
    { 
     loginToSystem(); 
    } 

    private void loginToSystem() 
    { 
     if (users.getUser(txtUsername.Text)) 
     { 

     } 
     //If txtUsername exists && User.password == Salt(txtPassword) 
     //then Show.MainForm() with User.accountType in constructor to set permissions. 
    } 
  1. 我需要验证用户存在& &这是USERS.PASSWORD等于SALT(txtpassword.text)帮助。

请指导一下吗?

一般情况下:散列无论用户类型,并将其与存储的散列进行比较。但是,如果这是一个asp.net项目,我建议使用'SqlMembershipProvider';它可能会提供您需要的所有功能,而且您不必重新发明轮子。

+0

这不是一个ASP.Net项目,当然我知道代码的伪逻辑。我无法使用实际的Linq-to-SQL方法。 – 2010-06-17 15:05:11

+0

我不知道为什么这个答案在没有回答这个问题的时候被提升。 :S – 2010-06-17 15:23:26

+0

@Sergio Tapia:你是如何散列原始密码的? – 2010-06-17 19:15:48