首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLL登录验证c#

BLL登录验证c#
EN

Stack Overflow用户
提问于 2020-06-27 07:01:45
回答 1查看 43关注 0票数 0

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

如果在BLL层中进行了验证,我该怎么做?

代码语言:javascript
复制
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();
            }
        } 
EN

回答 1

Stack Overflow用户

发布于 2020-06-27 07:18:59

将与UI无关的逻辑移入专用业务逻辑类型

代码语言:javascript
复制
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();
    }
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62603995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档