随笔分类 - ASP.NET
摘要:前边一篇文章中,说了一下WCF和Asp.net的session共享,现在实现Silverlight的过期退出和WCF服务session失效的同步方案。Silverlight的bussiness模板中已经包含了超时认证的部分,现作为借鉴,实现了WCF服务端session失效和Silverlight过期的同步。1. 在web.config中设置session过期的时间: <sessionState mode="InProc" stateConnectionString= "tcpip=127.0.0.1:42424" cookieless="
阅读全文
摘要:WCF能够共享ASP.NET的session,不同的WCF客户端代理类在采用Per Call模式下访问WCF能够访问同一个ASP.NET Session.但是WCF的Session和ASP.NET的Session是不同的。WCF的Session代表着服务实例,它是被客户端代理类访问时初始化的。WCF依靠消息通道,安全回话和消息模式等来联系session的。而ASP.NET的session是类似服务端的一种存储数据的模式。它是通过客户端cookie和uri来维护session的1. 利用ASP.NET的session实现认证,在aspx里记录用户认证信息:string UserId = Http
阅读全文
摘要:环节描述:把部署到N个服务器的站点集成到统一的一个站点中,实现单点登录。简单的流程图如下:说明:实现的要点:主要是在集成站点中提供一个根据一个唯一标识(Key)获得登录信息。二是在连入目标地址前,生成一个有Key组成的链接地址。
阅读全文
摘要:问题场景:在一个应用(集团门户)的某个page中, 通过IFrame的方式嵌入另一个应用(集团实时监管系统)的某个页面. 当两个应用的domain 不一样时, 在被嵌入的页面中Session失效。(session基于cookie实现,引用页不允许使用cookie).问题分析:IE6/IE7从安全性角度考虑,支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存在此问题了。解决方案:1. 修改Clie
阅读全文
摘要:1.Using the standard HTML Mewta tag 'Refresh'. This tag specifies a delay before the browserautomatically reloads the page. The delay is specified in seconds. You can specify a URL also to reload. If you do not specify a URL, it will relaod the same page after the interval.<head><me
阅读全文
摘要:此抽象类定义由 ASP.NET 托管代码用于处理请求的基本辅助方法和枚举。大多数情况下,代码不会直接处理 HttpWorkerRequest,这是因为请求和响应数据是通过 HttpRequest 和 HttpResponse 类公开的。 一些内部 ASP.NET 类扩展了此类。 如果代码实现自己的承载环境,则它需要扩展此类以调用 ProcessRequest 方法。 此外,代码还可以创建派生类,用于在给定应用程序中执行子请求,以便将其实例传递给 ProcessRequest。 在这种情况下,派生类应保留对当前 HttpWorkerRequest 的引用并将大多数方法委托给它。主要方法://HT
阅读全文
摘要:简介 大型asp.net应用要考虑如何服务众多的访问者,同时还要保证每个访问者都获得高质量的服务。需要面对不同语言的用户;需要保证安全性;应用系统的伸缩性也是很强的,当服务器集群有点不足以担负压力时,可以向服务器集群中加入更多的服务器来增加整个应用系统的服务能力。服务器的可用性也会要求很高,一年的下线时间是很少的。服务器的灾难备份也是很好的,即使现在的机房遭受毁灭性打击,也有灾难备份可以恢复服务。服务器上跑的asp.net应用是可扩展的,具有很好的可扩展性,同时具有良好的可维护性。本系列文章将谈谈大型asp.net应用系统架构的诸多方面。本篇将谈到架构的选择。架构的选择架构的选择与应用程序的类
阅读全文
摘要:控件事件和数据回发概述深层了解一下Button 的事件:假如我们没有对Button 注册Click 事件,则Button 会执行一遍它内部的Click 相关逻辑,并没有对Page 对象产生任何影响;如果我们为Button 定义了Click 事件(如上面代码片段),则Button 还是执行一遍它内部的Click 相关逻辑,不同的是在执行自己内部逻辑的过程中它还执行了Page 对象中的一些代码功(即Button 的事件体Button1_Click 方法),就达到了我们要实现的功能。通过触动一个对象Button 影响到另一个对象Page 的行为, 并且在Button 的事件体中即可以修改Button
阅读全文
摘要:callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了。但是想要真正用好、用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制了。在本文中,Teddy将和您一起解析callback的整个调用、反馈机制,相信对于帮助您更好的使用callback,将能有一定的益处。 Callback vs Atlas 首先,谈谈Atlas。很多朋友可能会觉得奇怪,已经有了Callback,为什么又要出Atlas呢?关于这个问题,Atlas的作者怎么解释,我倒 没有去调查。只不过从我个人对callback和atlas的使用感受来讲,觉得,ca
阅读全文
摘要:属性,方法和事件是控件使用者和控件交互的接口:包含系统属性和自定义属性。简单属性 [Description("简单属性")] [Category("简单属性")] public string Value { get { String s = (String)ViewState["Value"]; return ((s == null) ? String.Empty : s); } set { ViewState["Value"] = value; } }另外简单属性可以直接使用ViewState存储其值,因为简单属
阅读全文
摘要:ASP.NET页面与IIS底层交互和工作原理详解http://www.ej38.com/showinfo/asp.net-182682.html
阅读全文
摘要:第二章服务器控件开发中的调试技术略,因为在开发当作调试技术用的很多。选择基类:Control具有最基本的属性,WebControl有外观布局和样式等属性,CompositeControl实现了INamingContainer接口,现有控件。控件呈现顺序:RenderControlRenderRenderBeginTagRenderContentsRenderEndTag 3. Render呈现控件的基本方式方式一: output.AddAttribute(HtmlTextWriterAttribute.Href, "http://www.cnblogs.com/"); ou
阅读全文
摘要:服务器控件概述1.服务器控件的类型以及ASP.NET控件开发的系统基类Control,WebControl,CompositeControl,DataBoundControl,HierarchicalDataBoundControl,HierarchichicalDataSourceControl,ListControl,BaseValidator.2,控件的生命周期,服务器控件的生命周期与页面的生命周期相似,但有不同的地方,因为页面是一个容器,他的生命周期分的更细,因为页面的生成过程其实也是服务器控件的过程,但也没还要管理主题,模板页等好多地方。比如Init阶段:页面就分为:PreInit阶
阅读全文
摘要:通知正在等待的线程已发生事件。无法继承此类。 AutoResetEvent 允许线程通过发信号互相通信。通常,此通信涉及线程需要独占访问的资源。线程通过调用 AutoResetEvent 上的 WaitOne 来等待信号。如果 AutoResetEvent 处于非终止状态,则该线程阻塞,并等待当前控制资源的线程通过调用 Set 发出资源可用的信号。调用 Set 向 AutoResetEvent 发信号以释放等待线程。AutoResetEvent 将保持终止状态,直到一个正在等待的线程被释放,然后自动返回非终止状态。如果没有任何线程在等待,则状态将无限期地保持为终止状态。可以通过将一个布尔值传递
阅读全文
摘要:ASP.NET,保存信息的内置对象,如Application,Session,Cookie,Viewstate和Cache等内置对象方法 信息量大小 作用域及保存时间 应用范围=============================================================================Application任意大小的数据 整个应用程序的生命期 整个应用程序/所有用户Session小量简单的数据 用户活动时间+延迟时间(默认20分钟) 单个用户Cookie小量简单的数据 可以根据需要设定单个用户Viewstate小量简单的数据 一个WEB页面的生命期
阅读全文
摘要:如果一个页面上有很多TextBox,想把所有被更改的TextBox值写回数据库,利用下面方法,避免了遍历所有的textbox去查找被更改textbox值。 private List<TextBox> textBoxList = new List<TextBox>(); protected void TextBox_TextChanged(object sender, EventArgs e) { TextBox textBox = sender as TextBox; textBoxList.Add(textBox); }
阅读全文
摘要:灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:<asp:ListBox id="ListBox1" datasource='<%# myArray%>' runat="server"> 绑定到表达式:<%#(class1.property1.ToString() + "," + class1.property2.ToString())%> 绑定到方法返回值:<%# GetSafestring(str) %> 绑定到Hashta
阅读全文
摘要:用gridview做数据绑定时,是简单,容易操作,但是感觉数据量大时,就很慢了。gridview,增添删改,list数据源排序,分页等操作的代码:1.如果绑定的数据源为空时,仍然显示表头,核心代码: protected void BindData() { if (DtDataSource.Rows.Count == 0) { DtDataSource.Rows.Add(DtDataSource.NewRow()); this.GridView1.DataSource = DtDataSource; this.GridView1.DataBind(); int columnCount = thi
阅读全文
摘要:最近看到很多问题都是关于页面动态添加控件,页面postback以后,就取不到这些控件了。其实每次在页面上动态添加控件(或者在数据控件上动态添加列),它们的状态是不会被添加到页面的ViewState中去的,所以每次回送回来,它们就消失了,程序员只能手动把这些控件再次添加到页面上来,才会还原它们的状态。实在惭愧,上面的说法是错误的,由于自己没有理解该机制,幸亏sp1234大哥及时指出,要不然以后还会犯错误,以后学习切忌浮躁。下面就是他的话:“他们的状态都在ViewState中,并且asp.net也会尝试恢复状态。只不过,对于文章中的那种情况,“尝试恢复状态”失败,所以无法显示出来那 10个动态装.
阅读全文
摘要:Page.ClientScript-获取用于管理脚本、注册脚本和向页添加脚本的 ClientScriptManager 对象。讨论下ClientScriptManager 类:在 Web 应用程序中定义用于管理客户端脚本的方法。通过在网页的 HTML 标记中包含脚本,可以声明方式向网页添加客户端脚本。然而,有些情况下需要动态添加客户端脚本。若要动态添加脚本,根据您想添加脚本的时间及方式,使用 RegisterClientScriptBlock 方法、RegisterClientScriptInclude 方法、RegisterStartupScript 方法或 RegisterOnSubmit
阅读全文