⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 accountsafetybll.cs

📁 guan yu pai ke xi tong de ruan jian
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;

using System.Security.Cryptography;
using System.IO;

using Y2T03.CourseScheduler.CourseModel;
using Y2T03.CourseScheduler.CourseDAL;
using Y2T03.CourseScheduler.DALFactory;
using Y2T03.CourseScheduler.IDAL;

namespace Y2T03.CourseScheduler.CourseBLL
{
    /// <summary>
    /// AccountSafetyBLL 的业务逻辑层
    /// </summary>
    public class AccountSafetyBLL
    {
        public AccountSafetyBLL()
        { }

        #region 添加用户 (字符串经过 MD5 处理后再用 SHA1 进行处理)
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <param name="account">用户对象</param>
        /// <returns>true = 成功, false = 失败</returns>
        public static bool Create(Account account)
        {
            string name = account.LoginName;
            string password = account.Password;

            if ( name.Length <= 50 && password.Length <= 50 )
            {
                if (AccountSafetyBLL.GetAccount(account.LoginName) == null)
                {
                    byte[] bytes = StringToBytes(password); // 调用字符串转换为字节数组
                    byte[] md5 = toMD5(bytes);        // 调用MD5处理

                    string md = BytesToString(md5);   // 调用MD5处理结果转换为字符串

                    bytes = StringToBytes(md); // 调用字符串转换为字节数组

                    byte[] sha1 = toSHA1(bytes);       // 调用SHA1处理
                    string sha = BytesToString(sha1);  // 调用SHA1处理结果转换为字符串

                    account.Password = sha;

                    return DALFactory.DataAccess.GetAccountSafety().Create(account);
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 获取用户
        /// <summary>
        /// 获取用户
        /// </summary>
        /// <param name="loginName">用户名</param>
        /// <returns>用户实体对象</returns>
        public static Account GetAccount(string loginName)
        {
            return DALFactory.DataAccess.GetAccountSafety().GetAccount(loginName);
        }
        #endregion

        #region 登陆判断 (字符串经过 MD5 处理后再用 SHA1 进行处理)
        /// <summary>
        /// 登陆判断
        /// </summary>
        /// <param name="loginName">用户名</param>
        /// <param name="password">密码</param>
        /// <returns>true = 成功, false = 失败</returns>
        public static bool Login(string loginName, string password)
        {
            byte[] bytes = StringToBytes(password); // 调用字符串转换为字节数组
            byte[] md5 = toMD5(bytes);        // 调用MD5处理

            string md = BytesToString(md5);   // 调用MD5处理结果转换为字符串

            bytes = StringToBytes(md); // 调用字符串转换为字节数组

            byte[] sha1 = toSHA1(bytes);       // 调用SHA1处理
            string sha = BytesToString(sha1);  // 调用SHA1处理结果转换为字符串

            password = sha;

            return DALFactory.DataAccess.GetAccountSafety().Login(loginName, password);
        }
        #endregion

        #region 获取用户列表
        /// <summary>
        /// 获取用户列表
        /// </summary>
        /// <returns>用户实体对象列表</returns>
        public static IList<Account> GetAccounts()
        {
            return DALFactory.DataAccess.GetAccountSafety().GetAccounts();
        }
        #endregion

        #region 更新用户 (字符串经过 MD5 处理后再用 SHA1 进行处理)
        /// <summary>
        /// 更新用户
        /// </summary>
        /// <param name="account">用户实体对象</param>
        /// <returns>true = 成功, false = 失败</returns>
        public static bool Update(Account account)
        {
            string password = account.Password;

            if ( password.Length <= 50 )
            {
                byte[] bytes = StringToBytes(password); // 调用字符串转换为字节数组
                byte[] md5 = toMD5(bytes);        // 调用MD5处理

                string md = BytesToString(md5);   // 调用MD5处理结果转换为字符串

                bytes = StringToBytes(md); // 调用字符串转换为字节数组

                byte[] sha1 = toSHA1(bytes);       // 调用SHA1处理
                string sha = BytesToString(sha1);  // 调用SHA1处理结果转换为字符串

                account.Password = sha;

                return DALFactory.DataAccess.GetAccountSafety().Update(account);
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 删除用户
        /// <summary>
        /// 删除用户
        /// </summary>
        /// <param name="loginName">用户名</param>
        /// <returns>true = 成功, false = 失败</returns>
        public static bool Delete(string loginName)
        {
            if (loginName != "cdshidai")
            {
                return DALFactory.DataAccess.GetAccountSafety().Delete(loginName);
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 字符串转换为字节数组
        /// <summary>
        /// 字符串转换为字节数组
        /// </summary>
        /// <param name="message">字符串</param>
        /// <returns>字节数组</returns>
        static byte[] StringToBytes(string message)
        {
            int i;
            byte[] bytes = new byte[message.Length];

            for (i = 0; i < message.Length; i++)
            {
                bytes[i] = System.Convert.ToByte(message[i]);
            }

            return bytes;
        }
        #endregion

        #region MD5处理
        /// <summary>
        /// MD5处理
        /// </summary>
        /// <param name="data">字节数组</param>
        /// <returns>字节数组</returns>
        static byte[] toMD5(byte[] data)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] result = md5.ComputeHash(data);

            return result;
        }
        #endregion

        #region SHA1处理
        /// <summary>
        /// SHA1处理
        /// </summary>
        /// <param name="data">字节数组</param>
        /// <returns>字节数组</returns>
        static byte[] toSHA1(byte[] data)
        {
            SHA1 sha1 = new SHA1CryptoServiceProvider();
            byte[] result = sha1.ComputeHash(data);

            return result;
        }
        #endregion

        #region MD5处理结果转换为字符串
        /// <summary>
        /// MD5处理结果转换为字符串
        /// </summary>
        /// <param name="bytes">字节数组</param>
        /// <returns>字符串</returns>
        static string BytesToString(byte[] bytes)
        {
            int i;
            string result = "";

            for (i = 0; i < bytes.Length; i++)
            {
                if (bytes[i] <= 0x0F)
                {
                    result += "0" + bytes[i].ToString("X");
                }
                else
                {
                    result += bytes[i].ToString("X");
                }
            }

            return result;
        }
        #endregion
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -