Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
BLL登录验证c#_C#_Wpf_Business Logic Layer - Fatal编程技术网

BLL登录验证c#

BLL登录验证c#,c#,wpf,business-logic-layer,C#,Wpf,Business Logic Layer,所以我的问题是:我的BLL是验证我的登录,还是将验证放在表单UI上? 下面是我的UI中的一段代码 如果在BLL层中进行了验证,我该如何进行验证 private void ValidateForm(string username, string password) { var countdb = BLL.UsersBLL.VerifyDataBase(); if (countdb >= 1) {

所以我的问题是:我的BLL是验证我的登录,还是将验证放在表单UI上? 下面是我的UI中的一段代码

如果在BLL层中进行了验证,我该如何进行验证

private void ValidateForm(string username, string password)
        {
            var countdb = BLL.UsersBLL.VerifyDataBase();
            if (countdb >= 1)
            {
                var userdata = BLL.UsersBLL.VerifyUserData(username, password);

                if (userdata == 1)
                {
                    Entity.UsersEntity.UserSession.username = username;
                    var mainwindow = Application.Current.MainWindow as MainWindow;
                    main main = new main();
                    mainwindow.Close();
                    main.Show();
                    main.username.Content = Entity.UsersEntity.UserSession.username;
                }
                else if (userdata <= 0)
                {
                    ErrorHandle.Content = "Verifique o usuário ou a senha.";
                }
            }
            else
            {
                MessageBox.Show("O seu banco de dados está vazio! Por favor registrar um usuário.");
                register register = new register();
                register.ShowDialog();
            }
        } 
private void ValidateForm(字符串用户名、字符串密码)
{
var countdb=BLL.UsersBLL.VerifyDataBase();
如果(countdb>=1)
{
var userdata=BLL.UsersBLL.VerifyUserData(用户名、密码);
if(userdata==1)
{
Entity.UsersEntity.UserSession.username=用户名;
var mainwindow=Application.Current.mainwindow作为主窗口;
main main=新main();
main window.Close();
main.Show();
main.username.Content=Entity.UsersEntity.UserSession.username;
}

else if(userdata将非UI相关逻辑移到专用业务逻辑类型

public class UserLogin
{
    public string Name { get; set; }
    public string Password { get; set; }
}

public class VerifyUserResult
{
    public static VerifyUserResult Success() => new VerifyUserResult();
    public static VerifyUserResult Fail(string message) => new VerifyUserResult(message);
    public string Message { get; }
    public bool Success => string.IsNullOrEmpty(Message);
  
    private VerifyUserResult(string message) => Message = message;
}

public class VerifyUser
{
    public VerifyUserResult Invoke(UserLogin user)
    {
        if (BLL.UsersBLL.VerifyDataBase() < 1)
        {
            return VerifyUserResult.Fail("Some message");
        }

        if (BLL.UsersBLL.VerifyUserData(username, password) != 1)
        {
            return VerifyUserResult.Fail("Another message");
        }

        return VerifyUserResult.Success();
    }
}
公共类用户登录
{
公共字符串名称{get;set;}
公共字符串密码{get;set;}
}
公共类VerifyUserResult
{
公共静态VerifyUserResult Success()=>新建VerifyUserResult();
公共静态VerifyUserResult失败(字符串消息)=>新建VerifyUserResult(消息);
公共字符串消息{get;}
public bool Success=>string.IsNullOrEmpty(消息);
私有VerifyUserResult(字符串消息)=>message=message;
}
公共类验证用户
{
公共VerifyUserResult调用(用户登录用户)
{
if(BLL.UsersBLL.VerifyDataBase()<1)
{
返回VerifyUserResult.Fail(“某些消息”);
}
if(BLL.UsersBLL.VerifyUserData(用户名、密码)!=1)
{
返回VerifyUserResult.Fail(“另一条消息”);
}
返回VerifyUserResult.Success();
}
}

然后在UI代码中,您只需调用它并根据结果做出下一个决定

程序执行您希望它们执行的操作,并按照您希望的方式编写它们。本身没有设置的规则。因此,这个问题问,您将如何对登录进行验证。这将取决于此应用程序的大小,确保您的库应该idate所有内容,他们应该验证自己的输入。但是,您的库返回的内容有时与用户可能希望看到的内容大不相同。对于登录失败这样简单的事情,正确或错误都可以,因为这并不例外,您可以为您的UI定制一条消息