1、asp.net验证用户身份的三种方式?
Froms身份验证:要发出登录请求,需要在网页上填写一个表单并将该表单提交到服务器。服务器在接收该请求后,如果窗体证件有效,则asp.net将在客户端创建一个验证cookie,在后续的浏览中,浏览器每次发生请求时都会将cookie发送回服务器,这样用户就可以根据自己的希望保持身份验证状态。
Windows身份验证:登录页面将用户证书发送到Web服务器(只能是IIS,而不是vwd内建的web服务器)。然后服务器使用应用程序所运行的虚拟目录配置的方法处理身份验证。IIS连接到Windows操作系统和Active Directory(活动目录)域结构上,这意味着它依赖于存储在站点外部的用户配置文件,并使用标准Windows证书登录到站点。根据站点的配置情况以及登录计算机所使用的账号,甚至可以不用直接登录站点,因为当前所使用的Windows证书会自动传递到Web服务器进行身份验证。这种方式在开发局域网应用程序时特别有用。
Passport身份验证:passport验证是Microsoft公司提供的一种集中式验证服务,其工作原理与窗体验证类似,都是在客户端创建验证Cookie,用于授权。使用passprot验证时,用户将被重定向至passport登录网页,该页面提供了一个非常简单的窗体让用户填写验证资料,该窗体将通过Microsoft公司的Passport服务来检查用户的证件,以确定用户的身份是否有效。
2、asp.net页面间进行传值的方式?
QueryString方式,Session机制,Application,Cookie。详细的查阅
asp.net页面间传值方式
3、Cookie和Session的区别。
同上。
4、Hashtable和Hashmap的区别。
1)hashtable是线程安全的一个Collection。hashmap是hashtable的轻量级实现(非线程安全的实现),它们都完成了map接口,主要区别是hashmap允许null键值,由于非线程安全,效率上可能高于hashtable。
2)HashMap把Hashtable的contains方法去掉了,但是加上containsvalue和containsKey方法。
3)最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
另解:
哈希表由数组+链表组成,一个长度为16的数组中,每个元素存储的是一个链表的头结点。而HashMap和Hashtable就是哈希表结构。
数组的存储空间是连续的,占用内存严重,故空间复杂度很大,但是查找时间复杂度较小。数组的特点:寻址容易,插入和删除困难。
链表的存储空间是离散的,占用内存比较宽松,故空间复杂度较小,但查找时间复杂度较大。链表的特点:寻址困难,插入和删除容易。
Hashtable 继承自 Dictiionary 而 HashMap继承自AbstractMap。
5、sql分页语句
select top 10 * from( select top 40 * from table order by id ) as temp order by id desc select * from( select *,row_number() over(order by id) as rowRand from table) as temp where rowRand between 31 and 40
6、sql中查找具有重复的记录和不重复的记录?
重复: select * from table where id in ( select id from table group by id having count(1) >= 2) 不重复: select distinct(id) from table
7、sql执行顺序:
(8)SELECT (9)DISTINCT (11)<Top Num> <select list> (1)FROM [left_table] (3)<join_type> JOIN <right_table> (2) ON <join_condition> (4)WHERE <where_condition> (5)GROUP BY <group_by_list> (6)WITH <CUBE | RollUP> (7)HAVING <having_condition> (10)ORDER BY <order_by_list>
8、sql优化方法:
9、创建临时表: