UserLogin
DAL:
IUserDAL
namespace Dal
{
/// <summary>
/// This interface is defined for user functions.
/// </summary>
public interface IUserDal
{
#region Returns Model /// <summary>
/// Gets user by username.
/// </summary>
/// <param name="username">The user's name.</param>
/// <returns>Returns user model.</returns>
User RetrieveUserByUserName(string userName); #endregion #region Public int /// <summary>
/// Updates the password of the user.
/// </summary>
/// <param name="newPassword">The new password.</param>
/// <param name="userName">The user's name.</param>
int UpdatePassword(string newPassword, string userName); #endregion
}
}
UserDAL
namespace Dal
{
/// <summary>
/// This class is used for defining user functions.
/// </summary>
public class UserDal : IUserDal
{
#region Returns Model /// <summary>
/// Gets user by username.
/// </summary>
/// <param name="userName">The user's name</param>
/// <returns>Return user model.</returns>
public User RetrieveUserByUserName(string userName)
{ User user = null; string sqlText = SqlText.GetUserByUserName;
SqlParameter[] prams = new SqlParameter[]
{
new SqlParameter("@username",userName),
};
try
{
SqlDataReader sqlDataReader = SqlHelper.ExecureReader(sqlText, prams);
if (sqlDataReader.Read())
{
user = new User();
user.UserName = userName;
user.Password = Convert.ToString(sqlDataReader["password"]);
user.RoleType = Convert.ToString(sqlDataReader["role_type"]);
user.Telephone = Convert.ToString(sqlDataReader["telephone"]);
user.Gender = sqlDataReader["gender"].ToString();
user.Email = sqlDataReader["email"].ToString();
user.Address = sqlDataReader["address"].ToString();
user.ChineseName = (sqlDataReader["chinese_name"] is DBNull) ? string.Empty : sqlDataReader["chinese_name"].ToString();
user.Language = (sqlDataReader["language"] is DBNull) ? string.Empty : sqlDataReader["language"].ToString();
} SqlHelper.CloseSqlDataReader(sqlDataReader);
}
catch(SqlException ex)
{
throw new UserException(UserException.RetrieveUserByUserName,ex);
} return user;
} #endregion #region Public int /// <summary>
/// Updates the password of the user.
/// </summary>
/// <param name="newPassword">The new password.</param>
/// <param name="userName">The user's name.</param>
public int UpdatePassword(string newPassword, string userName)
{
int influenceNumber = ; try
{
string sqlText = SqlText.UpdatePassword;
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter("@password", newPassword),
new SqlParameter("@userName", userName),
}; influenceNumber = SqlHelper.ExecuteNonQuery(sqlText, parms);
}
catch (SqlException ex)
{
throw new UserException(UserException.UpdatePasswordFailed, ex);
} return influenceNumber;
} #endregion
}
}
BLL
IUserBLL
namespace Bll
{
/// <summary>
/// This interface is used to define user's functions.
/// </summary>
[ServiceContract(Namespace="MyCompanyService")]
public interface IUserBll
{
#region Returns Model /// <summary>
/// Gets the user model.
/// </summary>
/// <param name="userName">The user's name.</param>
/// <returns>Returns user's model.</returns>
[OperationContract]
User RetrieveUserByUserName(string userName); #endregion #region Returns bool /// <summary>
/// Updates user's password.
/// </summary>
/// <param name="newPassword">The new password.</param>
/// <param name="userName">The user's name.</param>
[OperationContract]
bool UpdatePassword(string newPassword, string userName); #endregion
}
}
UserBLL
namespace Bll
{
/// <summary>
/// This class is used for realizing user's functions.
/// </summary>
public class UserBll:IUserBll
{
#region Field IUserDal userDal = new UserDal();
log4net.ILog log = log4net.LogManager.GetLogger(EqualsConst.GetServiceLoggerName); #endregion public UserBll() { } public UserBll(IUserDal userDal)
{
this.userDal = userDal;
} #region Returns Model /// <summary>
/// Gets the user by user's name.
/// </summary>
/// <param name="userName">The user's name.</param>
/// <returns>Returns user model.</returns>
public User RetrieveUserByUserName(string userName)
{
User user = null; try
{
user = userDal.RetrieveUserByUserName(userName);
}
catch (UserException ex)
{
log.Error(ExamException.RetrieveExamList, ex);
throw new FaultException<MyExceptionContainer>(new MyExceptionContainer()
{
ErrorMessage = ex.Message,
Description = ExamException.RetrieveExamList
});
} return user;
} #endregion #region Public bool /// <summary>
/// Updates user's password.
/// </summary>
/// <param name="newPassword">The new password.</param>
/// <param name="userName">The user's name.</param>
public bool UpdatePassword(string newPassword, string userName)
{
bool isUpdatePassworded = false; try
{
int i = userDal.UpdatePassword(newPassword, userName); if (i > )
{
isUpdatePassworded = true;
}
}
catch (UserException ex)
{
log.Error(UserException.UpdatePasswordFailed, ex);
throw new FaultException<MyExceptionContainer>(new MyExceptionContainer()
{
ErrorMessage = ex.Message,
Description = UserException.UpdatePasswordFailed
});
} return isUpdatePassworded;
} #endregion
}
}
Client
namespace OES
{ /// <summary>
/// This class is used for login.
/// </summary>
public partial class FormLogin : Form
{
#region Field private log4net.ILog log = log4net.LogManager.GetLogger(EqualsConst.GetLoggerName);
public User user = null; #endregion #region Constructor public FormLogin()
{
InitializeComponent();
} #endregion #region Private Method /// <summary>
/// The processing of btnSubmit.
/// </summary>
/// <param name="sender">The source object of event.</param>
/// <param name="e">The parameter of event.</param>
private void BtnSubmit_Click(object sender, EventArgs e)
{
UserBllService.UserBllClient userBll = new UserBllService.UserBllClient(); if (String.IsNullOrWhiteSpace(this.txtUsername.Text))
{
this.lblLoginResult.Text = Constant.UserException.UserNameIsNull;
}
else if (String.IsNullOrWhiteSpace(this.txtPassword.Text))
{
this.lblLoginResult.Text = Constant.UserException.PasswordIsNull;
}
else
{
string userName = CheckForParameter.ReplaceSqlChar(this.txtUsername.Text.Trim());
string password = CheckForParameter.ReplaceSqlChar(this.txtPassword.Text.Trim()); try
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(
delegate
{
user = userBll.RetrieveUserByUserName(userName);
}); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
delegate(object obj, RunWorkerCompletedEventArgs arg)
{
if (arg.Error == null)
{
if (null != user && user.Password.Equals(MD5Tool.MD5Tostring(password), StringComparison.InvariantCultureIgnoreCase))
{
this.DialogResult = DialogResult.OK;
}
else
{
this.lblLoginResult.Text = UserException.LoginedFailed;
}
}
else
{
log.Error(arg.Error);
MessageBox.Show(UIException.ConnectionWithWCFFail);
}
}); bw.RunWorkerAsync();
}
catch (FaultException<MyExceptionContainer> myException)
{
log.Error(myException.Message, myException);
}
catch (FaultException faultException)
{
log.Error(faultException.Message, faultException);
}
catch (Exception exception)
{
log.Error(exception.Message, exception);
}
}
} /// <summary>
/// The processing of close the form.
/// </summary>
/// <param name="sender">The source object of event.</param>
/// <param name="e">The parameter of event.</param>
private void BtnCancel_Click(object sender, EventArgs e)
{
this.Close();
this.Dispose();
} #endregion
}
}
UserLogin的更多相关文章
- 解决dedev5.7更新出现include\userlogin.class.php on line 21的办法
第一种情况解决办法: 在dede\templets文件夹 找到 index_body.htm 文件 把这些注释掉. $(function() { $.get("index_tes ...
- [转]Android的userlogin登录
本文转自:http://hteqc6o.blog.sohu.com/199334086.html 用户注册 1.首先,先画你想要编译出的界面 根据草图,仅仅使用linearLayout的布局是不够的, ...
- 【报错】Validation failed for object='userLogin'. Error count: 1
提交表单之后: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing ...
- 解决织梦 \include\userlogin.class.php on line 21(或16) 报错的方法
用了下DEDECMS v5.7 SP1版本,发现很多问题,其中一个比较严重的是,架到服务器上的dede网站后台打开菜单选项卡得不能动,等半天显示505服务器错误,这个真让人纠结,在本地调试明明好好的, ...
- Android Retrofit 2.0 使用-补充篇
推荐阅读,猛戳: 1.Android MVP 实例 2.Android Retrofit 2.0使用 3.RxJava 4.RxBus 5.Android MVP+Retrofit+RxJava实践小 ...
- ABP源码分析四十二:ZERO的身份认证
ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展.同时重写了ABP核心模块中的permission功能,以实现 ...
- 【解决方案】 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userHandler': Injection of resource dependencies failed;
一个错误会浪费好多青春绳命 鉴于此,为了不让大家也走弯路,分享解决方案. [错误代码提示] StandardWrapper.Throwableorg.springframework.beans.fac ...
- 从无到有实现登录功能以及thinkphp怎么配置数据库信息
好开心,终于解决了.从学习android到现在写登录功能已经不是一次两次了,如今再写想着肯定是信手拈来,没有想到的是尽然折磨了我一天的时间才搞定它.唉...... 先来看几张截图,这次的登录跟以往的不 ...
- 分享一个html+js+ashx+easyui+ado.net权限管理系统
EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...
随机推荐
- JavaScript 中的算术运算
JavaScript中算术运算在溢出(overflow).下溢(underflow)或被零整除时不会报错,当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(i ...
- 利用css使文本在限制几行之后隐藏
想要在布局中显示一段新闻的标题或是内容,特别是内容,东西超多...下面的方法就是通过css来控制文本显示多少的: 首先在html中写上: <p class="ellipsis" ...
- Winform---文件夹操作
一.文件夹的操作 private void button1_Click(object sender, EventArgs e) { //文件夹操作 ////新建文件夹 //Directory.Crea ...
- 转: DH密钥交换和ECDH原理
转自:http://www.tuicool.com/articles/em6zEb DH密钥交换和ECDH原理 时间 2013-06-24 18:50:55 CSDN博客 原文 http://bl ...
- HttpContext.Current.User.Identity.IsAuthenticated
HttpContext.Current.User.Identity.IsAuthenticated=false; HttpContext.Current.User.Identity.Name==&qu ...
- 我与Bootstrap
接触bootstrap是因为一个项目.实在是不了解前端.但是公司又不招前端工程师,没有办法,我这个后端工程师被赶鸭子上架了. 做这个项目之前,只是简单的在网上看了一些bootstrap教学视频.然后拿 ...
- XAML
XAML定义 XAML是一种相对简单.通用的声明式编程语言,它适合于构建和初始化.NET对象. XAML仅仅是一种使用.NET API的方式,把它与HTML.可伸缩向量图形(SVG)或其他特定领域的格 ...
- mysql一对多关联查询的时候筛选条件
mysql实现users 表和 logoin_log表是一对多, 现在是把user的信息找出来 关联上一些 logoin_log表的数据, 因为a表是多的一方,要多他的数据进行一些条件匹配,这个sql ...
- MSSQL数据库逻辑文件名修改与查看
逻辑文件名是什么 你用的程序连接的时候使用的是数据库名,然后你在你的数据库右击属性的时候,左上角单击"文件",可以看到,数据库名和逻辑文件名是不一样的,你可以看自己的数据库的路径下 ...
- .NET使用QRCodeEncoder生成二维码
ThoughtWorks.QRCode.dll版本 1.0.2774.19990 代码如下: /// <summary> /// 生成二维码图片 /// </summary> ...