网站的个人化信息管理_第1页
网站的个人化信息管理_第2页
网站的个人化信息管理_第3页
网站的个人化信息管理_第4页
网站的个人化信息管理_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网站的个人化信息管理第1页,课件共35页,创作于2023年2月本章重点

创建个性化信息属性实现客户端文件上传生成网页记事日历网络数据库开发第2页,课件共35页,创作于2023年2月学习目标通过对如何在Web.Config中创建个人信息进行介绍,使读者在掌握设计个性化网页、编辑存储个人化信息、迁移匿名Profile设置、文件上传等技术的基础上,充分利用ASP.NET2.0超强的个人化信息功能,非常方便地实现用户的个人信息的存储并运用。网络数据库开发第3页,课件共35页,创作于2023年2月网站提供个性化功能的主要用途(1)识别用户身份(2)存储用户相关信息(3)提供个性化经验网络数据库开发第4页,课件共35页,创作于2023年2月5.1创建个人化信息属性个人化信息(Profile)可以记录每个用户专有的信息。简单的说,Profile使用用户唯一标识并为每一个用户保存其对应信息的一个工具。网络数据库开发第5页,课件共35页,创作于2023年2月5.1.1创建Profile语法Asp.Net中有一套与用户相关联的属性设置,可以通过在WebConfig里配置来直接使用,它的作用是:存储和使用唯一与用户对应的信息展现个人化版本的Web应用程序用户的唯一身份标识在再次访问时识别用户网络数据库开发第6页,课件共35页,创作于2023年2月5.1.1创建Profile语法创建Profile的语法如下:<profile><providers/>//保存Profile信息的数据库连接信息

<properties><addname=“属性名”type=“数据类型“defaultValue=”默认值"

allowAnonymous=“true/false是否允许匿名"/>

<groupname=“组名称"><addname=“组属性名称"defaultValue=""

type=""

allowAnonymous="false"/></group></properties></profile>网络数据库开发第7页,课件共35页,创作于2023年2月5.1.1创建Profile语法Profile对象与Membership机制有着密切关系,因为Profile对象存储的数据默认是针对指定会员存储的数据,这样,当会员登录网站之后,系统才能依据登录会员从数据库中取出对应的Profile对象。如在Web.config文件中添加下列代码之后,其中的<authorization>标记将限制只有会员才能执行此目录的ASP.NET程序,如果尚未登录,将自动跳转至Login.aspx文件,要求用户先登录网站。<system.web><authorization><denyusers="?"/></authorization></system.web>网络数据库开发第8页,课件共35页,创作于2023年2月5.1.1创建Profile语法Profile对象与Session对象的比较:Profile对象与Session对象十分相似,与Session对象相似的地方在于,Profile对象时相对一个特定的用户的,也就是说,每个Web应用程序的用户都有自己的Profile对象。不同的是,Profile对象是持久对象。而Session对象是临时的,当用户离开网站后,或者Session对象Timeouot时,Session对象中保持的信息就会消失。Profile对象如何持久保持对象中的信息不丢失?网络数据库开发第9页,课件共35页,创作于2023年2月5.1.1创建Profile语法如何保存Profile对象中的信息:(1)创建数据库:aspnet_regsql-Ap-sqlexportonlyprofilesetup.sql(2)添加数据库连接提供器<profile><providers><addname="SqlProvider"

type="System.Web.Profile.SqlProfileProvider"connectionStringName="ProfileDatabase"

applicationName="ProfileSample"description="SampleforASP.NETprofileandProFileService"/></providers><properties>省略…………</properties></profile>网络数据库开发第10页,课件共35页,创作于2023年2月5.1.2Profile对象的简单属性一个Profile对象中可以存储各种类型的信息,可以使简单的String类型,也可以使复杂的自定义类型。例如:存储用户名,购物车信息等等。Profile对象的简单属性是指存储单一信息的属性。举例:<properties><addname="username"defaultValue=""type="string"allowAnonymous="true"/></properties>网络数据库开发第11页,课件共35页,创作于2023年2月5.1.2Profile对象的简单属性读取和存储Profile信息的方法:读取Profile对象的Name属性到lable对象中显示:Msg.text=Profile.Name把文本框的字符串写入Profile对象的Name属性值。Profile.Name=name.text网络数据库开发第12页,课件共35页,创作于2023年2月5.1.3Profile对象的群组属性如果需要将几个profile对象属性一起工作,可以把它们放入一个组中,以方便管理。例如:<Profile>

<groupname=“student"><addname=“studentid"

type=“Int32"/>

<addname=“Name"

type=“String"/

<addname=“Score"

type=“Int32"/></group></Profile>访问组中的属性:Profile.组名.属性名例如读取学号的值,Proflie.student.Studentid网络数据库开发第13页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置匿名个性化是让没有登录网站的用户都能拥有个性化功能,一般是使用Cookie存储匿名用户的相关数据来实现匿名个性化的功能。Profile对象即可用于匿名用户也可以用于已认证用户,但当用户从匿名用户状态转换为已认证用户状态时,匿名用户的Profile对象的信息可以迁移至登录用户的Profile对象中。网络数据库开发第14页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置允许匿名使用Profile属性,并为每个匿名用户创建一个唯一标识UID网络数据库开发第15页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置ASP.NET的Profile对象能够存储匿名用户的相关数据(不需要登录网站),它使用GUID来识别匿名用户。在Web.config文件中启用匿名用户识别的实现代码如下:<anonymousIdentificationenabled="true"/>启用了匿名用户识别之后,就可以定义匿名用户的Profile属性了,代码如下:<addname="WishList"allowAnonymous="true"type="System.Collections.ArrayList"/>网络数据库开发第16页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置举例:使用匿名个性化,模拟网站购物车功能,允许用户在尚未登录网站前就可以选择商品,等到登录网站之后,再将匿名选择的清单整合到会员的Profile对象中。使用Button控件的单击事件,分别实现添加和删除客户喜欢商品清单的集合对象。网络数据库开发第17页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置protectedvoidbntAddwish_Click(objectsender,EventArgse)//添加喜欢的商品清单{if(txtBook.Text!=""){Profile.WishList.Remove(txtBook.Text.ToString());Profile.WishList.Add(txtBook.Text);}}protectedvoidbntDelwish_Click(objectsender,EventArgse)//删除喜欢的商品清单{if(txtBook.Text!=""){Profile.WishList.Remove(txtBook.Text.ToString());}}网络数据库开发第18页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置protectedvoidprofileInfo()

//显示顾客喜欢的商品清单{stringoutput="";if(Profile.IsAnonymous==false){lblmsg.Text=Profile.Name;

}IEnumeratorenum1=Profile.WishList.GetEnumerator();while(enum1.MoveNext()){output=output+enum1.Current+"<br>";}lblLists.Text=output;

}网络数据库开发第19页,课件共35页,创作于2023年2月5.1.4迁移匿名Profile设置当匿名用户登录网站时,其选择的清单就需要合并至会员的Profile属性中,在Global.asas文件中需要创建Profile_MigrateAnonymous事件处理程序。voidProfile_MigrateAnonymous(Objects,ProfileMigrateEventArgse){ProfileCommonanonProfile=Profile.GetProfile(e.AnonymousID);if(anonProfile!=null&&anonProfile.WishList!=null){IEnumeratorenum1=anonProfile.WishList.GetEnumerator();while(enum1.MoveNext()){Profile.WishList.Remove(enum1.Current);Profile.WishList.Add(enum1.Current);}}Profile.Save();}网络数据库开发第20页,课件共35页,创作于2023年2月5.1.5使用Cookies创建个性化网络数据库开发第21页,课件共35页,创作于2023年2月5.2实现客户端文件上传文件上传技术是一项很实用的技术,有着广泛的应用,用户可以使用上传功能来传送个性化所需的图片,文件或添加电子邮件附件。在ASP.NET程序中是使用System.IO命名空间的HttpPostedFile类来进行客户端的文件上传(文件上传的文件夹需要添加用户的写入权限才能上传文件)。网络数据库开发第22页,课件共35页,创作于2023年2月5.2实现客户端文件上传HtmlInputFile对象与HTML文件输入元素对应。你可用由id属性指定的名称来访问它。它有下列属性:*PostedFile:上传文件的内容。*Accept:以逗号界定的MIME类型列表,指定可能提交的文件类型。*MaxLength:要提交的文件的最长文件名长度(包括路径)。*Size:用户输入/选择上传文件的文本框宽度。以下是HTML输入控制的方法:*FileName:用户计算机上的完全合格的文件名称。它还包含上传文件的本地路径。*ContentLength:上传文件的大小(字节)。*ContentType:上传文件的MIME内容类型。*InputStream:返回一个指向上传文件的流(Stream)对象,允许你阅读文件内容。*SaveAs:方便保存上传文件的内容。网络数据库开发第23页,课件共35页,创作于2023年2月5.2.1用HtmlInputFile控件实现文件上传

stringup_path=Server.MapPath("images");//获取HttpPostedFile对象HttpPostedFilefile=filename.PostedFile;//检查文件是否有内容if(file.ContentLength==0){

msg.Text=“请选择上传文件";

}else{file.SaveAs(up_path+"/"+Path.GetFileName(file.FileName));msg.Text="文件已经成功的上传.....";

}网络数据库开发第24页,课件共35页,创作于2023年2月5.2.2显示上传文件信息UsingSystem.Text;//使用命名空间stringfilePath=file.FileName;output.Append("文件路径:"+filePath+"<br>");stringfile_Name=Path.GetFileName(filePath);output.Append("文件名称:"+file_Name+"<br>");

stringfileExtension=Path.GetExtension(file_Name);output.Append("副文件名:"+fileExtension+"<br>");stringcontentInfo=file.ContentType;output.Append("ContentType:"+contentInfo+"<br>");stringsizeInfo=file.ContentLength.ToString()+"位元组";output.Append("文件尺寸:"+sizeInfo+"<br>");file.SaveAs(up_path+"/"+Path.GetFileName(file.FileName));msg.Text=output.ToString();网络数据库开发第25页,课件共35页,创作于2023年2月5.2用HtmlInputFile控件实现文件上传上传图片还应该考虑上传的文件类型和文件大小的限制。文件类型的限制通过扩展名的匹配可以完成文件大小的限制:ASP.NET中默认上传文件的大小最大为4M。要改变默认值,可以修改Web.conifg文件的配置节点信息。<httpRuntimemaxRequestLength="102400"executionTimeout="600"useFullyQualifiedRedirectUrl="false"/>网络数据库开发第26页,课件共35页,创作于2023年2月5.2用HtmlInputFile控件实现文件上传protectedboolIsAllowedExtension(HtmlInputFilehifile)//判断上传文件类型是否符合要求{stringstrOldFilePath="",strExtension="";//允许上传的扩展名,可以改成从配置文件中读出string[]arrExtension={".gif",".jpg",".jpeg",".bmp",".png"};if(hifile.PostedFile.FileName!=string.Empty){strOldFilePath=hifile.PostedFile.FileName;//取得上传文件的扩展名strExtension=strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));//判断该扩展名是否合法for(inti=0;i<arrExtension.Length;i++){if(strExtension.Equals(arrExtension[i])){returntrue;}}}returnfalse;}网络数据库开发第27页,课件共35页,创作于2023年2月5.2用HtmlInputFile控件实现文件上传//IsAllowedLength判断上传文件大小是否超过最大值IsAllowedLength判断上传文件大小是否超过最大值protectedboolIsAllowedLength(HtmlInputFilehifile){//允许上传文件大小的最大值,可以保存在xml文件中,单位为KBinti=200;//如果上传文件的大小超过最大值,返回flase,否则返回true.if(hifile.PostedFile.ContentLength>i*1024){returnfalse;}returntrue;}网络数据库开发第28页,课件共35页,创作于2023年2月5.2.3实现多个文件同时上传//获取网站的绝对路径Stringup_path=Server.MapPath("images");//获取HttpFileCollection对象HttpFileCollectionobjFileCollection;objFileCollection=Request.Files;HttpPostedFilefile;inti,counter;counter=0;//使用循环取出每一个HttpPostedFile对象for(i=0;i<=objFileCollection.Count-1;i++){file=objFileCollection[i];if(file.ContentLength!=0){//上传文件file.SaveAs(up_path+"/"+Path.GetFileName(file.FileName));counter=counter+1;}msg.Text="共有["+counter+"]个文件成功上传...";}网络数据库开发第29页,课件共35页,创作于2023年2月5.2.4向数据库中上传图片一、建立数据库(包含image字段)createdatabasebooksalegousebooksalegocreatetablebookinf( bookidvarchar(6)primarykey,--书号

booknamevarchar(30)notnull,--书名

bookpricemoneynotnull,--价格

bookdatedatetimenotnull,--出版日期

bookimageimage,--封面

contentypevarchar(50)--文件类型)网络数据库开发第30页,课件共35页,创作于2023年2月5.2.4向数据库中上传图片二、设计程序界面三、编写代码1、读取上传的图片文件数据Streamimagestram=upfile.InputStream;intfilelength=upfile.ContentLength;//获取文件大小byte[]buffer=newbyte[filelength];

//定义数组imagestram.Read(buffer,0,filelength);imagestram.Close();网络数据库开发第31页,课件共35页,创作于2023年2月5.2.4向数据库中上传图片2、将图片记录插入数据库中(带参数化的Insert语句)stringstrinsert="insertintobookinf(bookid,bookname,bookprice,bookdate,bookimage,contentype)values(@id,@name,@price,@date,@image,@contentype)";cmd.Parameters.Add(newSqlParameter("@id",SqlDbType.VarChar,6));cmd.Parameters.Add(newSqlParameter("@name",SqlDbType.VarChar,30));cmd.Parameters.Add(newSqlParameter("@price",SqlDbType.Money));cmd.Parameters.Add(newSqlParameter("@date",SqlDbType.DateTime));cmd.Parameters.Add(newSqlParameter("@image",SqlDbType.Image));cmd.Parameters.Add(newSqlParameter("@contentype",SqlDbType.VarChar,50));网络数据库开发第32页,课件共35页,创作于2023年2月5.2.4向数据库中上传图片给指定参数赋值:cmd.Parameters["@id"].Value=txtid.Text;cmd.Parameters["@name"].Value=txtname.Text;cmd.Parameters["@price"].Value=txtprice.Text;cmd.Parameters["@date"].Value=txtdate.Text;cmd.Parameters["@image"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论