才读完微软ASP.NET产品组项目经理Stefan Schackow 撰写的《Professional ASP.NET 2.0 Security, Membership, and Role Management》的第二章,就觉得买书花的钱已经值了。
ASP.NET中身份的问题很复杂,我了解的知识大都来自Keith Brown的“A Tale of Three Security Contexts in ASP.NET”一文。Stefan Schackow 在第二章“Security Processing for Each Request”中,清晰地勾画出在每次请求中,特别是在与认证和授权模块相关的事件里,在不同的IIS安全设置,配置文件设置,以及是否部署在UNC共享目录里等各种情形下,当前操作系统线程的身份,IIS的身份令牌,当前托管线程的CurrentPrincipal,以及HttpContext.Current.User身份,是如何配置以及演变的。
其中特别提到了在异步操作中,身份是如何配置的,应该如何手工流动,但他指出ASP.NET 2.0 提供了把处理当前请求的操作系统线程的身份自动流动到异步线程上去的功能,只要把%WINDIR%\Microsoft.NET\Framework\v2.0.50727\aspnet.config文件中的2个节点改成
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
即可!
1。[来源:Scott Guthrie] ASP.NET 2.0 Providers的源码供下载了,很多人都报道这个消息了,这绝对是个好消息
http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi
如果你对Provider模型不熟,可以参考MSDN上的系列文章
Microsoft ASP.NET 2.0 Providers: Introduction
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/asp2prvdr01.asp
Jeff Prosise写的ASP.NET2.0 Provider Model: Introduction to the Provider Model
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/aspnetprovmod_intro.asp
2。Atlas开发组的Bertrand Le Roy对Atlas浏览器兼容层的解释
http://weblogs.asp.net/bleroy/archive/2006/04/13/442815.aspx
“。。。一般来说,使Javascript类库跨浏览器兼容有三种方式:
- 每次调用时你都检查浏览器是否支持某些功能。这么做的话,所有新的编码都要考虑所有的浏览器,添加一个新的浏览器需要修改所有的编码库
- 你写一个抽象层,建立另一套的API来抽象每个浏览器的具体API,跟其他两种方式相比,这种做法并不标准,因为你实际上是在现有的标准API和浏览器开发商自己的API之上又建立了一套新的非标准API。而且,这也使得编码调用路径更长了,因为每次API调用需要经过额外的函数调用,而且每次调用还必须检测浏览器是否支持
- Atlas的做法,你扩展其他的浏览器使得所有的浏览器都拥有一致的API,这样,编码调用路径是最直接的,而且兼容层生成时,只要做一次浏览器检测。这个做法另外的好处是,你每次添加一个新的浏览器,只要写它的兼容层就可以了,而不需要碰实际使用的Javascript类库
。。。”
3。 袁峰大侠的Windows Graphics Programming经典著作重印版出来了
http://blogs.msdn.com/fyuan/archive/2006/04/15/576934.aspx
4。 Mikhail Arkhipov 开发了一个能检查拼法的Visual Studio add-on
Spell Checker for HTML and ASP.NET pages
http://blogs.msdn.com/mikhailarkhipov/archive/2006/04/17/577471.aspx
5。 英国的Phil Winstanley的新技术列单,要学的东西太多了,真是学不过来
New Technology Shopping List
http://weblogs.asp.net/Plip/archive/2006/04/16/443059.aspx
1。[来源:Delay's Blog] ASP.NET/ATLAS产品组推出Atlas Control Toolkit以进一步简化开发AJAX应用
http://atlas.asp.net/default.aspx?tabid=47&subtabid=477
其中包括关联DropDownList,可收缩的Panel,确认按钮,可拖拉Panel,悬浮菜单,Popup控件,可排序列单,带水印的文字输入框,可切换按钮等9个控件。Atlas Control Toolkit示范页上还提供了怎么使用以及怎么生成类似控件的指导
2。 [来源:Harald Leitenmüller's WebLog] Visual Studio 2005 Team System 在线培训资源
http://msdn.microsoft.com/vstudio/teamsystem/expand/
包括一系列的教学录像,webcast,技术文章
[来源:Sean McBreen's WebLog] 另外这个页上的webcast示范了Team System的各种功能
Visual Studio Team System On-Demand Webcasts
http://msdn.microsoft.com/vstudio/teamsystem/community/webcasts/default.aspx
3。微软IIS7产品组的David Wang(这里有他和IIS7产品组的照片)教你怎么设置IIS来提供3000个并发连接来做类似server push的事情
HOWTO: Maximize the Number of Concurrent Connections to IIS6
http://blogs.msdn.com/david.wang/archive/2006/04/12/HOWTO_Maximize_the_Number_of_Concurrent_Connections_to_IIS6.aspx
4。苔丝又出手
如果你在多个应用里使用同个程序集,应该把程序集强名化后加到GAC里
ASP.NET Memory: You use the same dll in multiple applications, is it really necessary to load it multiple times?
http://blogs.msdn.com/tess/archive/2006/04/13/575357.aspx
强名程序集不该放在应用的bin目录里
ASP.NET: Strong named assemblies should not be stored in the bin directory
http://blogs.msdn.com/tess/archive/2006/04/13/575361.aspx
在生产环境下,别设置debug=true,否则问题多多
ASP.NET Memory: If your application is in production… then why is debug=true
http://blogs.msdn.com/tess/archive/2006/04/13/575364.aspx
应该设置
<configuration>
<system.web>
<deployment retail=”true”/>
</system.web>
</configuration>
Scott Guthrie对此问题也写了专文,提到的问题包括编译时间变长,运行慢,消耗内存多,来从WebResources.axd的脚本/图片资源不被缓存等
Don’t run production ASP.NET Applications with debug=”true” enabled
http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx
5。Javascript rules?
大家都知道,AJAX运动的主角是Javascript,但仔细看一下,目前几大家的Gadget/Widget技术也都是基于Javascript的
微软Vista上的Sidebar:
Gadget Development Overview
http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx
Google的Homepage API:
Google Homepage API Developer Guide
http://www.google.com/apis/homepage/guide.html
雅虎的Widgets:
Yahoo! Widget Engine Reference Guide
http://widgets.yahoo.com/workshop/