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的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...
随机推荐
- 在Firefox中通过AJAX跨域访问Web资源---
一.解决在firefox中无法跨域访问的问题 AJAX从本质上讲就是命名用XMLHttpRequest组件来向服务端发送HTTP请求,请接收相应信息.至于成功接收到响应信息后的操作,就和普通的Web客 ...
- DML 数据操纵语言
1.INSERT(插入)语言结构 INSERT INTO table(表名)(要插入的列名) VALUES(要插入的具体值): table:要插入数据的表的表名 column[,column]:表中要 ...
- Sublime Text shift+ctrl妙用
1 :按住shift+ctrl然后按←或→可快速选中一行中的某一部分,相当于双击鼠标选中. 当你想在代码末尾加注释的话,这个方法很好用 输入文字->光标移到文字末尾->按住shift+ct ...
- React Native学习-调取摄像头第三方组件:react-native-image-picker
近期做的软件中图片处理是重点,那么自然也就用到了相机照相或者相册选取照片的功能. react-native中有image-picker这个第三方组件,但是0.18.10这个版本还不是太支持iPad. ...
- 剑指Offer30 从1到n整数出现1的个数
/************************************************************************* > File Name: 30_NumerO ...
- 人情世故&潜规则
大凡成功的牛人,无一例外都明白这一点.他们读懂了社会的本质和人际交往的潜规则,知道对方需要什么,知道对方脑子里在想什么.你几乎看不见他奔波劳碌,但是在不动声色中,他就已经实现人生目标.他们成功的密码是 ...
- Part 10 AngularJS sort rows by table header
Here is what we want to do 1. The data should be sorted when the table column header is clicked 2. T ...
- byte[] 清空
1. using(byte buff = new byte[Size]){ // 你要用的代码,} 2. Array.Clear(bytes, 0 ,bytes.Length);
- 【iOS基础学习随笔-1】-基于对象的程序设计
一.对象: 1.在基于对象的程序设计中,一个程序分解成若干个不同的对象,每个对象都有自己独有的能力. 2.一个生产线上的一个工位只负责做好一件事.如果生产出的汽车的车门没有漆好,那问题很可能出在负责上 ...
- 20141030--SQL2008常用命令-1
create database biao2--创建新的数据库 go use biao2 go create table shuiguo--创建表shuiguo ,create table创建表 ( 序 ...