技术开发 频道

Duwamish代码分析篇

  验证数据合法性类-SystemFramework\ApplicationAssert.cs

  SystemFramework\ApplicationAssert.cs Class用来进行错误检测,并调用SystemFramework\ApplicationLog.cs Class记录错误日志。
 
  学习其中的部分代码片断:

  (1)Code Snippet 1 Check Method

[ConditionalAttribute("DEBUG")] public static void Check (bool condition,String errorText,int lineNumber) { if ( !condition ) { String detailMessage = String.Empty; StringBuilder strBuilder; GenerateStackTrace(lineNumber, out detailMessage); strBuilder = new StringBuilder(); strBuilder.Append("Assert: ").Append("\r\n"). Append(errorText).Append("\r\n").Append(detailMessage); ApplicationLog.WriteWarning(strBuilder.ToString()); System.Diagnostics.Debug.Fail(errorText, detailMessage); } }
  [ConditionalAttribute("DEBUG")]定义Check()方法为conditional method,如果预处理符号(preprocessor symbol)没有定义,compiler不仅忽略该方法,而且忽略对该方法的调用,和#if DEBUG / #else / #endif有些类似。
 
  该方法用来判断条件condition是否为true,如果为false,则调用SystemFramework\ApplicationLog.WriteWarning()方法记录错误日志。
 
  (2)Code Snippet 2 CheckCondition Method
public static void CheckCondition (bool condition, String errorText, int lineNumber) { //Test the condition if ( !condition ) { //Assert and throw if the condition is not met String detailMessage; GenerateStackTrace(lineNumber, out detailMessage); Debug.Fail(errorText, detailMessage); throw new ApplicationException(errorText); } }
  该方法一般用来在进行前置条件判断,如condition为false,则抛出exception。
 
  log日志类-SystemFramework\ApplicationLog.cs
 
  ApplicationLog 类实现 Duwamish 7.0 中的记录和跟踪。Web.Config 文件中的配置设置确定是输出到 EventLog 文件、跟踪日志文件还是两者。Web.Config 文件的同一节还指定跟踪配置。在实际的应用系统开发中,用来提供Log功能的类应该比这个ApplicationLog类要好,这样就不去分析了,如Microsoft Exception Management Application Block就不错。
 
  Web.config配置文件-使用Web.congfig文件存储application设置
 
  Duwamish 7.0 通过使用 Forms 身份验证来实现安全性。Forms 身份验证将未经授权的用户重定向到Web 窗体,该窗体提示用户输入其电子邮件地址和密码。
 
  (1)配置 Forms 身份验证
 
  Web.config 文件中的设置配置 Forms 身份验证。对于 Duwamish 7.0,Web.Config 文件按如下所述指定 Forms 身份验证的使用:
<authentication mode="Forms"> <forms name=".ADUAUTH" loginUrl="secure\logon.aspx" protection="All"> </forms> </authentication> <authorization> <allow users="*" /> </authorization>
  authentication元素只能在计算机、站点或应用程序级别声明。如果试图在配置文件中的子目录或页级别上进行声明,则将产生分析器错误信息。

0
相关文章