技术开发 频道

Duwamish代码分析篇

  如上所示,Web.Config 将 .ADUAUTH 指定为身份验证 Cookie 的名称。当用户请求受限资源时,公共语言运行库将未经授权的用户重定向到在上面的 Web.Config 设置中指定的Login.aspx。protection="All" 设置指定应用程序使用数据验证和加密来保护 Cookie。若要进一步限制资源,Duwamish 7.0 会将安全资源放置到名为 secure 的子文件夹中并使用额外的 Web.Config 文件(在secure文件夹),在该文件中指定只有经过身份验证的用户才可访问该子文件夹的内容。

<authorization> <deny users="?" /> <allow users="*" /> </authorization>
  <deny users="?" /> 标记指定拒绝对所有匿名用户的访问。<allow users="*" /> 标签允许访问所有已验证身份的用户。经过secure\logon.aspx认证通过的请求,重新定向最初的URL。
 
  (2)用户定义的配置节
<configSections> <section name="ApplicationConfiguration" type="Duwamish7.SystemFramework.ApplicationConfiguration, Duwamish7.SystemFramework" /> <section name="DuwamishConfiguration" type="Duwamish7.Common.DuwamishConfiguration, Duwamish7.Common"/> <section name="SourceViewer" type="System.Configuration. NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </configSections>
  section元素包含配置节声明,name 指定配置节的名称,type 指定从配置文件中读取节的配置节处理程序类的名称。配置节处理程序(即实现 IConfigurationSectionHandler 接口的类)读取设置。
 
  上面定义了3个配置节处理程序:
  Duwamish7.SystemFramework.ApplicationConfiguration
  Duwamish7.Common.DuwamishConfiguration
  System.Configuration.NameValueSectionHandler
 
  前面两个配置节处理程序是由application提供的,后面的System.Configuration.NameValueSectionHandler是.Net Framework提供的,该类也实现了IconfigurationSectionHandler接口,用来提供配置节中的名称/值对配置信息。
 
  web\PageBase.cs基类
 
  最后谈谈web\PageBase.cs基类吧,所有 Duwamish 7.0 中的所有web页都继承名为 PageBase 的基类,该类实现 Duwamish 7.0 应用程序的 ASP.Net 页中使用的常见属性和方法,这种设计方法值得推荐。
 
  Code Snippet分析:
protected override void OnError(EventArgs e) { ApplicationLog.WriteError(ApplicationLog.FormatException (Server.GetLastError(), UNHANDLED_EXCEPTION)); base.OnError(e); }
  重载OnError方法,使application遭遇到未处理错误的时候,自动调用ApplicationLog.WriteError()来记录错误日志。另外,觉得Duwamish的password处理有些特别,是以byte形式存放在Database中,避免明文的方式,以提高安全性(将在《Duwamish密码分析篇》进行中分析)。

0
相关文章