惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

博客园 - 不做懒人

用C#实现C/S模式下软件自动在线升级[转载] 实现.NET应用程序的自动更新[转载] 高效 Ini文件访问类(C#编写,用于Windows Mobile) C#实现“新华网头条的图片新闻” 终于得空,写两句了...... CSS+DIV技巧两则(居中,高度自适应) - 不做懒人 - 博客园 正则表达式替换字符串的一个技巧 --- 可用于关键词变红色 - 不做懒人 下载:Visual Studio 2008 SDK VS2008——软件开发更智能 08年了,准备写点东西了~~ 想设计一个简单的RSS在线阅读程序,欢迎大伙提供意见 [转载]在SQL SERVER如何添加数据用户 大量并发访问xml和数据库的效率问题 Asp.net中下拉框绑定值的怪现象。 字符串数组的一些处理方法总结 [转载]知识不一定会带来金钱,挣钱靠的是能力 [转载]2006年优秀网页UI设计风格剖析 [转载]网页设计技巧系列之文本排版 [转载]网页布局的四种基本型与十二种混合型
一个用户登录验证的类
不做懒人 · 2009-09-22 · via 博客园 - 不做懒人

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
    }
}