zoukankan      html  css  js  c++  java
  • 自己写的基类:Forms身份验证类、客户端事件类,序列化类下载

    最近写了几个类,给刚刚入门的同学们参考吧!

    Forms身份验证类:

    /*创建人:阿泰
     *创建时间:2011-9-15
     *说明:获取、写入forms身份验证所存储的票据,为Forms身份验证登录所用(VS2010版本)
     */
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    
    /// <summary>
    ///FormsData 的摘要说明
    /// </summary>
    public class FormsData
    {
    	public FormsData()
    	{
    		//
    		//TODO: 在此处添加构造函数逻辑
    		//
    	}
        /// <summary>
        /// 获取登录用户的权限
        /// </summary>
        /// <param name="UserName">用户名</param>
        /// <param name="IsAdmin">否0,是1</param>
        /// <param name="IsSuperAdmin">否0,是1</param>
        /// <returns>返回含有权限的用户登录的票据</returns>
        public static string GetUserData(string UserName,string IsAdmin,string IsSuperAdmin) 
        {
            string userData = UserName + "," + IsAdmin+","+IsSuperAdmin;
            return userData;
        }
        /// <summary>
        /// 获取forms身份验证所存储的票据
        /// </summary>
        /// <param name="i">一般情况下,0为用户名,1为是否普通管理员,2为是否超级管理员</param>
        /// <returns>返回forms身份验证票据</returns>
        public static string GetFormsTicket(int i)
        {
            if (HttpContext.Current.Request.IsAuthenticated)
            {
                FormsIdentity identity = (FormsIdentity)HttpContext.Current.User.Identity;
                string[] userData = identity.Ticket.UserData.Split(',');
                return userData[i].ToString();
            }
            else
            {
                return "";
            }
        }
        /// <summary>
        /// 写入forms身份验证所存储的票据,一般为登录所用
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="IsAdmin">是否管理员,是则为1,否则为0</param>
        /// <param name="IsSuperAdmin">是否超级管理员,是则为1,否则为0</param>
        /// <param name="expirationDay">票据的期限,以“天”为单位</param>
        public static void SetFormsTicket(string username, string IsAdmin, string IsSuperAdmin, int expirationDay)
        {
            //获取票据
            string userData = GetUserData(username,IsAdmin,IsSuperAdmin);
            FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddDays(expirationDay), true, userData);
            string authTicket = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, authTicket);
            cookie.Expires = ticket.Expiration;
            HttpContext.Current.Response.SetCookie(cookie);
        }
            /// <summary>
        /// 写入forms身份验证所存储的票据,一般为登录所用(重载版本,无权限控制的登录)
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="expirationDay">票据的期限,以“天”为单位</param>
        public static void SetFormsTicket(string username, int expirationDay)
        {
            SetFormsTicket(username, "0", "0", expirationDay);
        }
    }

    客户端事件类:

    /*创建人:陈盛泰,阿泰
     *创建时间:2011-7-15
     *说明:弹出对话框的类(VS2010版本)
     */
    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    
    /// <summary>
    ///弹出对话框的类
    /// </summary>
    public class Jscript
    {
        public Jscript()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
        //弹出对话框
        /// <summary>
        /// 弹出对话框
        /// </summary>
        /// <param name="msg">输入弹出内容</param>
        /// <param name="page">指在那个页面,一般用this,表示当前页</param>
        public static void AlertMsg(string msg, Page page)
        {
            string js = @"<script>alert('" + msg + "')</script>";
            page.ClientScript.RegisterStartupScript(page.GetType(), "提示 ", js);
        }
    
        //弹出对话框并转向其他页面
        /// <summary>
        /// 弹出对话框并转向其他页面
        /// </summary>
        /// <param name="msg">输入弹出内容</param>
        /// <param name="url">转向网页路径</param>
        /// <param name="page">指在那个页面,一般用this,表示当前页</param>
        public static void AlertMsg(string msg, string url, Page page)
        {
    
            string js = @"<script>alert('" + msg + "');location.href='" + url + "'</script>";
            page.ClientScript.RegisterStartupScript(page.GetType(), "提示 ", js);
        }
    
        //跳转页面
        /// <summary>
        /// 跳转页面
        /// </summary>
        /// <param name="url">转向网页路径</param>
        /// <param name="page">指在那个页面,一般用this,表示当前页</param>
        public static void windowOpen(string url, Page page)
        {
            string js = @"<script>window.open('" + url + "','_blank');</script>";
            page.ClientScript.RegisterStartupScript(page.GetType(), "", js);
        }
    
        //弹出提示对话框后关闭窗口
        /// <summary>
        /// 弹出提示对话框后关闭窗口
        /// </summary>
        /// <param name="msg">提示文字</param>
        /// <param name="page">一边用this,表示当前页</param>
        public static void windowClose(string msg, Page page)
        {
            string js = @"<script>alert('" + msg + "');window.close();</script>";
            page.ClientScript.RegisterStartupScript(page.GetType(), "", js);
        }
    }
    

      

    序列化类:

    //-----------------------------------------------------------------------
    
    // Coding by: AC     Created date: 2010-8-5 13:10:09
    // Description:   
    // Others desc:     
    // Alter History:
    //     [By]           [Date]           [Version]      [Purpose]
    //     AC   2010-8-5 13:10:09      1.0           Create
    //----------------------------------------------------------------
    
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Reflection;
    using System.Text;
    using System.Data;
    
    
        /// <summary>
        /// JSON序列器
        /// </summary>
    public class JSONSerializer
    {
        private readonly StringBuilder _output = new StringBuilder();
    
        public static string ToJSON(object obj)
        {
            return new JSONSerializer().ConvertToJSON(obj);
        }
    
        private string ConvertToJSON(object obj)
        {
            WriteValue(obj);
    
            return _output.ToString();
        }
    
        private void WriteValue(object obj)
        {
            if (obj == null)
                _output.Append("null");
            else if (obj is sbyte || obj is byte || obj is short || obj is ushort || obj is int || obj is uint || obj is long || obj is ulong || obj is decimal || obj is double || obj is float)
                _output.Append(Convert.ToString(obj, NumberFormatInfo.InvariantInfo));
            else if (obj is bool)
                _output.Append(obj.ToString().ToLower());
            else if (obj is char || obj is Enum || obj is Guid)
                WriteString("" + obj);
            else if (obj is DateTime)
                WriteString(((DateTime)obj).ToString("yyyy-MM-dd"));
            else if (obj is string)
                WriteString((string)obj);
            else if (obj is IDictionary)
                WriteDictionary((IDictionary)obj);
            else if (obj is Array || obj is IList || obj is ICollection)
                WriteArray((IEnumerable)obj);
            else if (obj is DataTable)
                WriteDataTable((DataTable)obj);
            else
                WriteObject(obj);
        }
    
        private void WriteObject(object obj)
        {
            _output.Append("{ ");
    
            bool pendingSeparator = false;
    
            foreach (FieldInfo field in obj.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance))
            {
                if (pendingSeparator)
                    _output.Append(" , ");
    
                WritePair(field.Name, field.GetValue(obj));
    
                pendingSeparator = true;
            }
    
            foreach (PropertyInfo property in obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                if (!property.CanRead)
                    continue;
    
                if (pendingSeparator)
                    _output.Append(" , ");
    
                WritePair(property.Name, property.GetValue(obj, null));
    
                pendingSeparator = true;
            }
    
            _output.Append(" }");
        }
    
        private void WritePair(string name, object value)
        {
            WriteString(name);
    
            _output.Append(" : ");
    
            WriteValue(value);
        }
    
        private void WriteArray(IEnumerable array)
        {
            _output.Append("[ ");
    
            bool pendingSeperator = false;
    
            foreach (object obj in array)
            {
                if (pendingSeperator)
                    _output.Append(',');
    
                WriteValue(obj);
    
                pendingSeperator = true;
            }
    
            _output.Append(" ]");
        }
    
        private void WriteDictionary(IDictionary dic)
        {
            _output.Append("{ ");
    
            bool pendingSeparator = false;
    
            foreach (DictionaryEntry entry in dic)
            {
                if (pendingSeparator)
                    _output.Append(" , ");
    
                WritePair(entry.Key.ToString(), entry.Value);
    
                pendingSeparator = true;
            }
    
            _output.Append(" }");
        }
    
        private void WriteString(string s)
        {
            _output.Append('\"');
    
            foreach (char c in s)
            {
                switch (c)
                {
                    case '\t': _output.Append("\\t"); break;
                    case '\r': _output.Append("\\r"); break;
                    case '\n': _output.Append("\\n"); break;
                    case '"':
                    case '\\': _output.Append("\\" + c); break;
                    default:
                        {
                            if (c >= ' ' && c < 128)
                                _output.Append(c);
                            else
                                _output.Append("\\u" + ((int)c).ToString("X4"));
                        }
                        break;
                }
            }
    
            _output.Append('\"');
        }
    
        private void WriteDataTable(DataTable table)
        {
            List<Hashtable> data = new List<Hashtable>();
            foreach (DataRow row in table.Rows)
            {
                Hashtable dic = new Hashtable();
                foreach (DataColumn c in table.Columns)
                {
                    dic.Add(c.ColumnName, row[c]);
                }
                data.Add(dic);
            }
            WriteValue(data);
        }
    }
    

      

    若要使用的话,就在这里下载吧:

    Forms身份验证类

    客户端事件类

    序列化类(别人写的)

    twitter: @tai1001
    新浪微博: @陈盛泰
    facebook: 陈盛泰

    欢迎关注!谢谢!

    我不是软件工程师,我是程序员。

  • 相关阅读:
    ffmpeg文档03-详细说明
    ffmpeg文档01-命令语法
    ffmpeg文档02-描述/概览
    OpenWrt使用花生壳脚本
    upc 9315 Philosopher’s Walk
    upc 9312 Game Map
    hdu 1251 统计难题
    Trie树简要讲解
    [算法]一次商品交易利益最大化
    [c语言]左移和右移
  • 原文地址:https://www.cnblogs.com/chenshengtai/p/2203167.html
Copyright © 2011-2022 走看看