Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使用SQLite、MVVM进行授权#_C#_Wpf_Sqlite_Mvvm - Fatal编程技术网

C# 如何在C中使用SQLite、MVVM进行授权#

C# 如何在C中使用SQLite、MVVM进行授权#,c#,wpf,sqlite,mvvm,C#,Wpf,Sqlite,Mvvm,我有2个独立的项目,注册和登录主窗口,我绑定到同一个SQLite文件。 用户注册的一切都很好,但现在我需要的登录将正常工作。如何从BD中提取用户,并使用MVVM检查该用户是否存在以及密码是否一致 我开始创建两个类 public class ServiceResult { public bool IsSucceed { get; set; } public string Error { get; set; } public ServiceResult() {

我有2个独立的项目,注册和登录主窗口,我绑定到同一个SQLite文件。 用户注册的一切都很好,但现在我需要的登录将正常工作。如何从BD中提取用户,并使用MVVM检查该用户是否存在以及密码是否一致

我开始创建两个类

public class ServiceResult
{
    public bool IsSucceed { get; set; }
    public string Error { get; set; }
    public ServiceResult()
    {
        IsSucceed = true;
    }

    public ServiceResult(string error)
    {
        IsSucceed = false;
        Error = error;
    }
}

我的注册视图模型

public class RegisterViewModel : BaseViewModel
{
    Hashing hashing = new Hashing();
    ApplicationDbContext db;
    private string name;
    public string Name
    {
        get => name;
        set
        {
            name = value;
            OnPropertyChanged(nameof(Name));
        }
    }
    private string lastName;
    public string LastName
    {
        get => lastName;
        set
        {
            lastName = value;
            OnPropertyChanged(nameof(LastName));
        }
    }
    private string login;
    public string Login
    {
        get => login;
        set
        {
            login = value;
            OnPropertyChanged(nameof(Login));
        }
    }

    private string password;
    public string Password
    {
        get { return password; }
        set
        {
            if (password != value)
            {
                password = value;
                OnPropertyChanged("Password");
            }
        }
    }
    private string mail;
    public string Mail
    {
        get => mail;
        set
        {
            mail = value;
            OnPropertyChanged(nameof(Mail));
        }
    }



    public ICommand Command { get; set; }

    private RelayCommand registerCommand;
    public RelayCommand RegisterCommand
    {
        get
        {
            return registerCommand ??
                (registerCommand = new RelayCommand(() =>
                {
                    var _user = new RegisterUser(Name, LastName, Login, hashing.Encrypt(Password), Mail);
                    db.Users.Add(_user);
                    db.SaveChanges();
                }));
        }
    }

    public ObservableCollection<User> Users { get; set; }
    public RegisterViewModel()
    {
        db = new ApplicationDbContext();
    }
}
 ApplicationDbContext db;
    IEnumerable<User> users;

    public LoginViewModel(IViewFactory viewFactory, ICore core) : base(viewFactory)
    {
        db = new ApplicationDbContext();
    }

    public ICommand Command { get; set; }

    private string login;
    public string Login
    {
        get => login;
        set
        {
            login = value;
            RaisePropertyChanged(nameof(Login));
        }
    }
    private string password;
    public string Password
    {
        get => password;
        set
        {
            password = value;
            RaisePropertyChanged(nameof(Password));
        }
    }

    private RelayCommand addCommand;
    public RelayCommand AddCommand
    {
        get
        {
            return addCommand ??
                (addCommand = new RelayCommand(() =>
                {
                }));
        }
    }

    public IEnumerable<User> Users
    {
        get { return users; }
        set
        {
            users = value;
            RaisePropertyChanged("Users");
        }
    }
}
private RelayCommand loginUser;
    public RelayCommand LoginUser
    {
        get
        {
            return loginUser ??
                (loginUser = new RelayCommand(() =>
                {
                    var result = _authorizationService.Login(Login, hashing.Encrypt(Password));
                }));
        }
    }
公共类RegisterViewModel:BaseViewModel { Hashing Hashing=新的Hashing(); 应用程序上下文数据库; 私有字符串名称; 公共字符串名 { get=>name; 设置 { 名称=值; OnPropertyChanged(Name of(Name)); } } 私有字符串lastName; 公共字符串姓氏 { get=>lastName; 设置 { lastName=值; OnPropertyChanged(nameof(LastName)); } } 私有字符串登录; 公共字符串登录 { get=>login; 设置 { 登录=值; OnPropertyChanged(登录名); } } 私有字符串密码; 公共字符串密码 { 获取{返回密码;} 设置 { 如果(密码!=值) { 密码=值; OnPropertyChanged(“密码”); } } } 私人字符串邮件; 公用字符串邮件 { get=>邮件; 设置 { 邮件=价值; OnPropertyChanged(姓名(邮件)); } } 公共ICommand命令{get;set;} 专用中继通信注册通信; 公共中继命令注册命令 { 得到 { 返回寄存器命令?? (registerCommand=新的RelayCommand(()=> { var\u user=newregisteruser(名称、姓氏、登录名、哈希、加密(密码)、邮件); db.Users.Add(_user); db.SaveChanges(); })); } } 公共ObservableCollection用户{get;set;} 公共注册服务模型() { db=新的ApplicationDbContext(); } } 这是登录视图模型

public class RegisterViewModel : BaseViewModel
{
    Hashing hashing = new Hashing();
    ApplicationDbContext db;
    private string name;
    public string Name
    {
        get => name;
        set
        {
            name = value;
            OnPropertyChanged(nameof(Name));
        }
    }
    private string lastName;
    public string LastName
    {
        get => lastName;
        set
        {
            lastName = value;
            OnPropertyChanged(nameof(LastName));
        }
    }
    private string login;
    public string Login
    {
        get => login;
        set
        {
            login = value;
            OnPropertyChanged(nameof(Login));
        }
    }

    private string password;
    public string Password
    {
        get { return password; }
        set
        {
            if (password != value)
            {
                password = value;
                OnPropertyChanged("Password");
            }
        }
    }
    private string mail;
    public string Mail
    {
        get => mail;
        set
        {
            mail = value;
            OnPropertyChanged(nameof(Mail));
        }
    }



    public ICommand Command { get; set; }

    private RelayCommand registerCommand;
    public RelayCommand RegisterCommand
    {
        get
        {
            return registerCommand ??
                (registerCommand = new RelayCommand(() =>
                {
                    var _user = new RegisterUser(Name, LastName, Login, hashing.Encrypt(Password), Mail);
                    db.Users.Add(_user);
                    db.SaveChanges();
                }));
        }
    }

    public ObservableCollection<User> Users { get; set; }
    public RegisterViewModel()
    {
        db = new ApplicationDbContext();
    }
}
 ApplicationDbContext db;
    IEnumerable<User> users;

    public LoginViewModel(IViewFactory viewFactory, ICore core) : base(viewFactory)
    {
        db = new ApplicationDbContext();
    }

    public ICommand Command { get; set; }

    private string login;
    public string Login
    {
        get => login;
        set
        {
            login = value;
            RaisePropertyChanged(nameof(Login));
        }
    }
    private string password;
    public string Password
    {
        get => password;
        set
        {
            password = value;
            RaisePropertyChanged(nameof(Password));
        }
    }

    private RelayCommand addCommand;
    public RelayCommand AddCommand
    {
        get
        {
            return addCommand ??
                (addCommand = new RelayCommand(() =>
                {
                }));
        }
    }

    public IEnumerable<User> Users
    {
        get { return users; }
        set
        {
            users = value;
            RaisePropertyChanged("Users");
        }
    }
}
private RelayCommand loginUser;
    public RelayCommand LoginUser
    {
        get
        {
            return loginUser ??
                (loginUser = new RelayCommand(() =>
                {
                    var result = _authorizationService.Login(Login, hashing.Encrypt(Password));
                }));
        }
    }
ApplicationDbContext数据库;
i无数用户;
公共LoginViewModel(IViewFactory viewFactory,ICore core):基础(viewFactory)
{
db=新的ApplicationDbContext();
}
公共ICommand命令{get;set;}
私有字符串登录;
公共字符串登录
{
get=>login;
设置
{
登录=值;
RaisePropertyChanged(名称(登录));
}
}
私有字符串密码;
公共字符串密码
{
获取=>密码;
设置
{
密码=值;
RaisePropertyChanged(名称(密码));
}
}
专用RelayCommand addCommand;
公共RelayCommand AddCommand
{
得到
{
返回addCommand??
(addCommand=newrelayCommand(()=>
{
}));
}
}
公共IEnumerable用户
{
获取{返回用户;}
设置
{
用户=价值;
RaisePropertyChanged(“用户”);
}
}
}
我做了,很简单)

和登录视图模型

public class RegisterViewModel : BaseViewModel
{
    Hashing hashing = new Hashing();
    ApplicationDbContext db;
    private string name;
    public string Name
    {
        get => name;
        set
        {
            name = value;
            OnPropertyChanged(nameof(Name));
        }
    }
    private string lastName;
    public string LastName
    {
        get => lastName;
        set
        {
            lastName = value;
            OnPropertyChanged(nameof(LastName));
        }
    }
    private string login;
    public string Login
    {
        get => login;
        set
        {
            login = value;
            OnPropertyChanged(nameof(Login));
        }
    }

    private string password;
    public string Password
    {
        get { return password; }
        set
        {
            if (password != value)
            {
                password = value;
                OnPropertyChanged("Password");
            }
        }
    }
    private string mail;
    public string Mail
    {
        get => mail;
        set
        {
            mail = value;
            OnPropertyChanged(nameof(Mail));
        }
    }



    public ICommand Command { get; set; }

    private RelayCommand registerCommand;
    public RelayCommand RegisterCommand
    {
        get
        {
            return registerCommand ??
                (registerCommand = new RelayCommand(() =>
                {
                    var _user = new RegisterUser(Name, LastName, Login, hashing.Encrypt(Password), Mail);
                    db.Users.Add(_user);
                    db.SaveChanges();
                }));
        }
    }

    public ObservableCollection<User> Users { get; set; }
    public RegisterViewModel()
    {
        db = new ApplicationDbContext();
    }
}
 ApplicationDbContext db;
    IEnumerable<User> users;

    public LoginViewModel(IViewFactory viewFactory, ICore core) : base(viewFactory)
    {
        db = new ApplicationDbContext();
    }

    public ICommand Command { get; set; }

    private string login;
    public string Login
    {
        get => login;
        set
        {
            login = value;
            RaisePropertyChanged(nameof(Login));
        }
    }
    private string password;
    public string Password
    {
        get => password;
        set
        {
            password = value;
            RaisePropertyChanged(nameof(Password));
        }
    }

    private RelayCommand addCommand;
    public RelayCommand AddCommand
    {
        get
        {
            return addCommand ??
                (addCommand = new RelayCommand(() =>
                {
                }));
        }
    }

    public IEnumerable<User> Users
    {
        get { return users; }
        set
        {
            users = value;
            RaisePropertyChanged("Users");
        }
    }
}
private RelayCommand loginUser;
    public RelayCommand LoginUser
    {
        get
        {
            return loginUser ??
                (loginUser = new RelayCommand(() =>
                {
                    var result = _authorizationService.Login(Login, hashing.Encrypt(Password));
                }));
        }
    }