• asp.net 在ashx文件中读写session


    首先要继承 System.Web.SessionState.IReadOnlySessionState 的接口
    其中:System.Web.SessionState.IReadOnlySessionState为只读会话的接口

    而:System.Web.SessionState.IRequiresSessionState 为可读可写会话的接口

    View Code
    using System;
      using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Drawing;
    using System.Web.UI.WebControls;
    using System.Web.SessionState;
    namespace CanYou.FinancePlat.Web
    {
         /// <summary>
         /// GeneraLoginCode 的摘要说明
         /// </summary>
         public class GeneraLoginCode : IHttpHandler, IRequiresSessionState
         {
             public void ProcessRequest(HttpContext context)
             {
                 string checkCode = CreateCode(4);
                 context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                 context.Session["_Login_ValidateCode"] = checkCode;
                 CreateImage(checkCode, context);
             }
             private string CreateCode(int codeLength)
             {
                 string so = "1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
                 string[] strArr = so.Split(',');
                 string code = "";
                 Random rand = new Random();
                 for (int i = 0; i < codeLength; i++)
                 {
                     code += strArr[rand.Next(0, strArr.Length)];
                 }
                 return code;
             }
             private void CreateImage(string code, HttpContext context)
             {
                 Bitmap image = new Bitmap(60, 20);
                 Graphics g = Graphics.FromImage(image);
                 WebColorConverter ww = new WebColorConverter();
                 g.Clear((Color)ww.ConvertFromString("#FAE264"));
                 Random random = new Random();
                 //画图片的背景噪音线
                 for (int i = 0; i < 12; i++)
                 {
                     int x1 = random.Next(image.Width);
                     int x2 = random.Next(image.Width);
                     int y1 = random.Next(image.Height);
                     int y2 = random.Next(image.Height);
                     g.DrawLine(new Pen(Color.LightGray), x1, y1, x2, y2);
                 }
                 Font font = new Font("Arial", 15, FontStyle.Bold | FontStyle.Italic);
                 System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(
                     new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Gray, 1.2f, true);
                 g.DrawString(code, font, brush, 0, 0);
                 //画图片的前景噪音点
                 for (int i = 0; i < 10; i++)
                 {
                     int x = random.Next(image.Width);
                     int y = random.Next(image.Height);
                     image.SetPixel(x, y, Color.White);
                 }
                 //画图片的边框线
                 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
                 System.IO.MemoryStream ms = new System.IO.MemoryStream();
                 image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                 context.Response.ClearContent();
                 context.Response.ContentType = "image/Gif";
                 context.Response.BinaryWrite(ms.ToArray());
                 g.Dispose();
                 image.Dispose();
             }
             public bool IsReusable
             {
                 get
                 {
                     return false;
                 }
             }
         }
    }

  • 相关阅读:
    【OC 知识】静态变量
    【OC知识点】alloc 和init
    【oc 知识点】copy和mutableCopy
    【iOS入门】pod 安装
    【iOS入门】NSarray
    【iOS入门】instancetype和id的区别
    【iOS入门】不全屏
    【ios入门】xcode 新建项目变化
    Spark(一)-- Standalone HA的部署
    数据挖掘算法之协同过滤算法
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/3122651.html
Copyright © 2020-2023  润新知