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的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...
随机推荐
- nodejs6-npm包管理工具
npm search:在官方仓库中搜索包https://registry.npmjs.org npm view:查看官方仓库中的包 npm install:在当前目录下安装指定包 npm instal ...
- 【CSS3】---:before :after生成内容
在Web中插入内容,在CSS2.1时代依靠的是JavaScript来实现.但进入CSS3进代之后我们可以通过CSS3的伪类“:before”,“:after”和CSS3的伪元素“::before”.“ ...
- 三.CSS层叠机制
概述 层叠就是对样式的层叠.是某种样式在样式表中逐层叠加的过程.让浏览器对某个标签特定属性值的多个来源,最终确定使用那个值.层叠是整个CSS的核心机制. HTML文档样式的来源 1.浏览器默认样式,每 ...
- Part 72 to 81 Talking about Dictionary and List collection in C#
Part 72 What is dictionary in c# Part 73 What is dictionary in c# continued Part 74 List colle ...
- Warning: session_start() [function.session-start]: Cannot send session cookie解决办法
在很多时间使用了session就会出来如下提示了, Warning: session_start() [function.session-start]: Cannot send session coo ...
- java创建Date日期时间笔记
(1)public Date() 创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间. 例: Java代码 1.Date today=new Date(); //today被设置成创建时刻相 ...
- Type 'System.IO.FileStream' with data contract name 'FileStream:http://schemas.datacontract.org/2004/07/System.IO' is not expected.
今天在WCF项目里使用DataContract序列化接口参数的时候,报了这个错,错误详细信息如下: System.ServiceModel.CommunicationException: There ...
- @@ROWCOUNT (Transact-SQL)
@@ROWCOUNT (Transact-SQL) 返回受上一语句影响的行数.如果行数大于 20 亿,请使用 ROWCOUNT_BIG. Transact-SQL 语法约定 语法 @@ROWCOUNT ...
- JAVA JDBC 元数据分析小结
纯干货: 获取数据库名称: /** * 获取数据库的名称 */ public void getDataBaseName() throws Exception { Connection con = DS ...
- UI4_LabelChess
// // AppDelegate.m // UI4_LabelChess // // Created by zhangxueming on 15/6/29. // Copyright (c) 201 ...