BLL登录验证c#
所以我的问题是:我的BLL是验证我的登录,还是将验证放在表单UI上? 下面是我的UI中的一段代码 如果在BLL层中进行了验证,我该如何进行验证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) {
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定制一条消息