1、asp.net session state mode有几种?
Session State mode 一共有5中模式,分别为InProc,StateServer,SQLServer,Custom,Off。下面分别说明5种模式:
- InProc mode: 会话状态保存在ASP.NET 辅助进程中,此模式为默认模式。并且只有在此模式下才会在Session Timeout触发Session_OnEnd事件。
- StateServer mode:会话状态将会保存在ASP.NET的一个特定进程(ASP.NET State Service).此状态下session不会因为网站的重启而丢失,并且可以让Session在多个网站中共享。
- SQLServer mode:此模式下会话状态将会保存到SQL数据库中。
- Custom mode:自定义模式,可自行编写一个自定义的Provider,把会话状态保存到希望的存储媒介中。
- Off mode: 禁用Session。
参考《http://msdn.microsoft.com/en-us/library/ms178586.aspx》
2、ASP.net的身份验证方式有哪些?分别是什么原理?
- Windows 身份验证提供程序
- Forms 身份验证提供程序
- Passport 身份验证提供程序
Windows身份验证提供有关如何将 Windows 身份验证与 Microsoft Internet 信息服务 (IIS) 身份验证结合使用来确保 ASP.NET 应用程序安全的信息。
Forms身份验证提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。使用 Forms 身份验证的一种简便方法是使用 ASP.NET 成员资 格和 ASP.NET 登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。
Passport 身份验证提供有关由 Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置。
3、HTTP GET和POST的区别?
首先需要说明一点的是,很多人认为post比get安全,这肯定是不准确的,因为post和get都是明文传输,用httpfox等插件,或者像WireShark 等类似工具就能观察到。
语义上,GET是获取指定URL上的资源,是读操作,重要的一点是不论对某个资源GET多少次,它的状态是不会改变的,在这个意义上,我们说GET是安全的(不是被密码学或者数据保护意义上的安全)。因为GET是安全的,所以GET返回的内容可以被浏览器,Cache服务器缓存起来(其中还有很多细节,但不影响这里的讨论)。
而POST的语意是对指定资源“追加/添加”数据,所以是不安全的,每次提交的POST,参与的代码都会认为这个操作会修改操作对象资源的状态,于是,浏览器在你按下F5的时候会跳出确认框,缓存服务器不会缓存POST请求返回内容。
参考 : http://www.yining.org/2010/05/04/http-get-vs-post-and-thoughts/
4、什么是Application Pool?
什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。
Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。
5、列举ASP.NET 页面之间传递值的几种方式。
- 使用Querystring
- 使用Session变量
- 使用Server.Transfer
- cookie
- hidden control/view state
- static member
- cache
- application全局