一个用户登录验证的类

using System;
using System.Collections.Generic;
using System.Web;
using System.Data.OleDb;
using System.Text;
using System.Data;
using System.Web.Security;

namespace GD.App_Code
{
    public class UserInfo
    {
        /// <summary>
        /// 验证用户登陆
        /// </summary>
        /// <param name="username">用户名称</param>
        /// <param name="password">用户密码</param>
        /// <returns></returns>
        public static bool ValidUser(string username, string password, int power)
        {
            password = DESEncrypt.Encrypt(password);

            StringBuilder sb = new StringBuilder();
            if (power == (int)UserPower.customer)
            {
                sb.Append("select [UserName] from Customer where [UserName]=@username ");
            }
            else
            {
                sb.Append(string.Format("select [UserName] from Manager where [UserName]=@username and [Power]='{0}' ",power));
            }
            sb.Append("and [Password]=@password");
            OleDbParameter[] param =
                                    {
                                        OleDbHelper.GetParameter("@username",OleDbType.Char,50,"[UserName]",username),
                                        OleDbHelper.GetParameter("@password",OleDbType.Char,50,"[Password]",password)
                                        };
            DataTable table = OleDbHelper.Query(sb.ToString(), param);
            if (table.Rows.Count > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


        /// <summary>
        /// 更改用户密码
        /// </summary>
        /// <param name="username">用户名称</param>
        /// <param name="password">用户密码</param>
        /// <returns></returns>
        public static bool ChangePsd(string username, string password, int power)
        {
            password = DESEncrypt.Encrypt(password);

            StringBuilder sb = new StringBuilder();
            if (power == (int)UserPower.customer)
            {
                sb.Append(string.Format("update Customer set [Password]='{0}' where [UserName]='{1}' ", password, username));
            }
            else
            {
                sb.Append(string.Format("update Manager set [Password]='{0}' where [UserName]='{1}' ", password, username));
            }
            int i = OleDbHelper.ExecuteSql(sb.ToString());
            if (i > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 设置COOKIE
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public static void SetCookie(string username, int power)
        {
            int userid = -1;
            bool bHas = true;
            if (power == (int)UserPower.customer)
            {
                App_Code.Customer customer = new Customer(username);
                userid = customer.ID;
                if (customer.UserName == string.Empty)
                {
                    bHas = false;
                }
            }
            else
            {
                Manager manager = new Manager(username);
                userid = manager.UserID;
                if (manager.UserName == string.Empty)
                {
                    bHas = false;
                }
            }
            if (bHas)
            {
                string userData = username.Replace(@"\", @"\\") + "#" + power.ToString();
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userid.ToString(), DateTime.Now, DateTime.Now.AddMinutes(60), false, userData, FormsAuthentication.FormsCookiePath);
                string encTicket = FormsAuthentication.Encrypt(ticket);
                HttpCookie newCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
                HttpContext.Current.Response.Cookies.Add(newCookie);
            }
        }

        /// <summary>
        /// 判断用户是否登录
        /// </summary>
        /// <returns>已登录返回true</returns>
        public static bool IsLogin()
        {
            return HttpContext.Current.User.Identity.IsAuthenticated;
        }

        /// <summary>
        /// 退出登录
        /// </summary>
        public static void Logout()
        {
            FormsAuthentication.SignOut();
        }

        /// <summary>
        /// 获取登录的用户ID
        /// </summary>
        /// <returns></returns>
        public static int getUserID()
        {
            if (IsLogin())
            {
                return Convert.ToInt32(HttpContext.Current.User.Identity.Name);
            }
            else
            {
                return -1;
            }
        }


        /// <summary>
        /// 获得用户名
        /// </summary>
        /// <returns></returns>
        public static string GetUserName()
        {
            if (IsLogin())
            {
                string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
                string[] UserData = strUserData.Split(new string[] { @"#" }, StringSplitOptions.RemoveEmptyEntries);
                if (UserData.Length > 0)
                {
                    return UserData[0].Replace(@"\\", @"\");
                }
                else
                    return "";
            }
            else
            {
                return "";
            }
        }

        /// <summary>
        /// 返回用户的角色
        /// </summary>
        /// <returns></returns>
        public static int GetUserRole()
        {
            if (IsLogin())
            {
                string strUserData = ((FormsIdentity)(HttpContext.Current.User.Identity)).Ticket.UserData;
                string[] UserData = strUserData.Split(new string[] { @"#" }, StringSplitOptions.RemoveEmptyEntries);
                if (UserData.Length > 0)
                {
                    return Int32.Parse(UserData[1]);
                }
                else
                {
                    return -1;
                }
            }
            else
            {
                return -1;
            }
        }

       

    }
    public enum UserPower
    {
        customer,
        salesman,
        manager
    }
}

转载于:https://www.cnblogs.com/lgamoy/archive/2009/09/22/1572114.html

1.需要完成的任务 使用UserDaoImp1和User的相关方法,完成如下功能: (1)对空的User对象调用getUserInfo()方法抛出的异常处理 (2)修改UserDaoImp1,要求用户id不能修改,修改则抛出异常 (3)使用log4j输出日志信息 2.技能训练 (1)会使用try-catch-finally捕获和处理异常 (2)会使用throw和throws (3)会使用log4j记录日志 3.实践 实践一:使用try-catch进行异常处理 需求说明 (1)使用UserDaoImp1的方法查找用户,并用User的getUserInfo()方法输出用户信息 (2)使用一个不存在的用户名查找用户,使用try-catch对抛出的异常进行处理 实现思路及关键代码 (1)在测试中调用UserDaoImp的addUser(User user)方法,添加用户,然后用findUser(String uName)方法查找并输出用户信息 (2)在测试中调用UserDaoImp1的findUser(String uName)方法,使用不存在的用户名查找用户,并试图输出用户信息 (3)对抛出的异常使用try-catch进行异常处理。 实践二:使用try-catch-finally进行异常处理 需求说明 (1)对实践1的异常使用try-catch-finally进行异常处理 (2)在finally块输出是否抛出了异常 实现思路及关键代码 (1)在任务一中的代码上增加finally块 (2)为了判断在finally块输出是否抛出异常,可以设置一个变量,在catch块里修改这个变量 实践四:使用log4j 需求说明 (1)使用log4j输出日志信息 (2)查看输出日志信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值