源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET笔记之 图库权限设置的方法

  • 时间:2020-03-21 19:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET笔记之 图库权限设置的方法
1、通过一个实例来介绍图库权限,其中涉及到数据库的应用,在visual studio 2010 连接到数据库  中创建数据集及数据表可能会出现无法远程连接的错误,具体ide解决方案 可以参考 [url=http://www.1sucai.cn/article/35929.htm]SQL Server 2008 R2:error 26 开启远程连接详解 [/url] 2、这个实例,是通过输入用户名和密码判断该用户是普通用户还是收费用户,然后进入下载图片列表,非用户点击下载是转到跳转页面提示,普通用户下载图片是带水印的     试用图片,而收费用户下载图片是原始版图片。在登陆的时候,同时设置错误登陆次数限制以及尝试登陆时间间隔要求。     这个过程需要建立数据表以及数据集:建一个DAl文件夹存放,数据集存放在APP_Date文件夹下,以确保数据的安全性     建数据表如下:            [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100105_0_39898.jpg[/img]    数据库语句如下:   SELECT ID, sUserName, sPassword, iLevel, sErrorTime, sLastErrorTime  FROM T_userInfo [i]  SELECT ID, iLevel, sErrorTime, sLastErrorTime, sPassword, sUserName FROM T_userInfo WHERE (ID = @ID)[/i] [i]  SELECT ID, iLevel, sErrorTime, sLastErrorTime, sPassword, sUserName FROM T_userInfo WHERE (sUserName = @sUserName)[/i] [i]   UPDATE T_userInfo Set sErrorTime=IsNULL(sErrorTime,0)+1,sLastErrorTime=getdate() where ID=@ID[/i] [i]   UPDATE T_userInfo  Set  sErrorTime=0 where ID=@ID[/i] [i] [/i][b]登陆页面:login.aspx [/b]
[url=Pic_download.ashx?fileName=11.jpg]<a href="Pic_download.ashx?fileName=11.jpg">图片2</a> <a href="Pic_download.ashx?fileName=11.jpg">图片3</a> 下载列表页面:Pic_download.ashx using System.Linq; using System.Web; using 图片下载.DAL.DataSetPicTableAdapters; using System.Web.SessionState; using System.Drawing; namespace 图片下载 {     /// <summary>     /// Pic_download 的摘要说明     /// </summary>     public class Pic_download : IHttpHandler,IRequiresSessionState     {         public void ProcessRequest(HttpContext context)         {             if (context.Session["是否登陆"] == null)             {                 context.Response.Redirect("Target.htm");             }             else {                 string fileName = context.Request["fileName"];                 //报头                 context.Response.ContentType="image/JPEG";                 string newFileName = HttpUtility.UrlEncode(fileName);                 context.Response.AddHeader("Content-Disposition", "attachment:filename=" + newFileName);                 //根据ID获取数据                 int user_id = (int)context.Session["登陆的ID"];                 T_userInfoTableAdapter adapter = new T_userInfoTableAdapter();                 var data = adapter.GetDataById(user_id);                 var user = data.Single();                 if (user.iLevel == 0) //普通用户                 {                     using (System.Drawing.Bitmap bitImage = new System.Drawing.Bitmap("image/" + fileName))                     {                         //设置画布                         using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitImage))                         {                             g.DrawString("免费用户试用——"+user.sUserName, new System.Drawing.Font("宋体", 20),Brushes.Red, 0, 0);                            }                         //保存到输出流中                         bitImage.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);                     }                 }                 else//收费用户                 {                     context.Response.WriteFile("image/"+fileName);                 }             }         }         public bool IsReusable         {             get             {                 return false;             }         }     } } [b]跳转页面:Target.htm [/b] [b]总结:[/b] (1、最大的问题就是遇到数据库远程连接的问题,不过通过了解才知道SQL server 2008不默认支持,需要一番设置,具体的流程:SQL Server 2008 R2:error 26 开启远程连接详解 详细出处参考:[url=http://www.1sucai.cn/article/35929.htm]SQL Server 2008 R2:error 26 开启远程连接详解[/url] (2、获取context.Request等需要解析IRequiresSessionState接口
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部