• 国际化的实现
    1.创建项目ResourceLanguage
    2.添加资源文件ResourceLanguage.resx,添加数据(添加数据是最好不要使用html标记,这样会造成编译错误),编译
    这时资源文件的路径应该是resourceLanguage.ResourceLanguage.resource,为了调用方便,一般可以设置项目的名字空间为空,这样我们调用时,只用通过ResourceLanguage.resource访问就可以了
    3.下面是装载资源文件:
    crm具体问题具体实现const string baseResourceFile = "ResourceLanguage";
    crm具体问题具体实现                Assembly primaryResource 
    = Assembly.Load(baseResourceFile);
    crm具体问题具体实现                Application[
    "RM"= new ResourceManager(baseResourceFile, primaryResource);
    4.添加属性,用于获取资源包
    crm具体问题具体实现    public class Root
        }
    5.调用
    crm具体问题具体实现Root.rm.GetString("Lgntxt4");

    (注意:国际化文档时,value值如果用到了HTML标记,请注意标记一定要规范,部分标记无法使用,不然会报告错误,如使用 标记,会报告xmlvalidatingreader 并相应地设置 entityheadling 属性的错误)
  • 身份验证票,验证用户权限以控制是否有权访问某页面(待续)
    1.web.config设置,采用Forms身份验证方式:
    crm具体问题具体实现<authentication mode="Forms">
    crm具体问题具体实现            
    <forms name=".CRM" protection="All" timeout="60" loginUrl="login.aspx" slidingExpiration="true" />
    crm具体问题具体实现        
    </authentication>
    2.项目下各级目录下页面文件访问授权的设置:
    crm具体问题具体实现<configuration>
    crm具体问题具体实现    
    <system.web>
    crm具体问题具体实现    
    <authorization>
    crm具体问题具体实现        
    <allow roles="SystemAdministrator,MembershipAdministrator" />
    crm具体问题具体实现        
    <deny users="*" />
    crm具体问题具体实现    
    </authorization>
    crm具体问题具体实现    
    </system.web>
    crm具体问题具体实现
    crm具体问题具体实现    
    <location path="ShowAllUsers.aspx">
    crm具体问题具体实现      
    <system.web>
    crm具体问题具体实现        
    <authorization>
    crm具体问题具体实现          
    <allow roles="SystemAdministrator,MembershipAdministrator" users="?" />
    crm具体问题具体实现        
    </authorization>
    crm具体问题具体实现      
    </system.web>
    crm具体问题具体实现    
    </location>
    crm具体问题具体实现
    </configuration>
    3.验证票的建立
    crm具体问题具体实现public FormsAuthenticationTicket(
    crm具体问题具体实现
    int version, //设为1
    crm具体问题具体实现
    string name, //用户标示
    crm具体问题具体实现
    DateTime issueDate, //Cookie 的发出时间, 设置为 DateTime.Now 
    crm具体问题具体实现
    DateTime expiration, //过期时间
    crm具体问题具体实现
    bool isPersistent, //是否持久性(根据需要设置,若是设置为持久性,在发出
    crm具体问题具体实现
    cookie时,cookie的Expires设置一定要设置)
    crm具体问题具体实现
    string userData, //这里用上面准备好的用逗号分割的role字符串
    crm具体问题具体实现
    string cookiePath // 设为"/",这要同发出cookie的路径一致,因为刷新cookie
    crm具体问题具体实现
    要用这个路径
    crm具体问题具体实现);
    crm具体问题具体实现
    crm具体问题具体实现FormsAuthenticationTicket Ticket 
    = new FormsAuthenticationTicket (1,"kent",DateTime.Now, DateTime.Now.AddMinutes(30), false,UserRoles,"/") ;
    crm具体问题具体实现

    4.生成验证票
    crm具体问题具体实现//将身份验证票加密序列化成一个字符串
    crm具体问题具体实现
    string HashTicket = FormsAuthentication.Encrypt (Ticket) ;
    crm具体问题具体实现
    //生成cookie
    crm具体问题具体实现
    HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket) ;
    crm具体问题具体实现
    5.将身份验证票Cookie输出到客户端
    通过Response.Cookies.Add(UserCookie) 将身份验证票Cookie附加到输出的cookie集合中,发送到客户端.
    6.重定向到用户申请的初试页面.
    Context.Response.Redirect (Context.Request["ReturnUrl"]) ;
    7.基于角色访问授权
    crm具体问题具体实现protected void Application_AuthorizeRequest(object sender, System.EventArgs e)
    }
  • 地址重载(待续)

  • 页面存储机制(viewstate)(待续)
    1.重载LoadPageStateToPersistenceMedium方法
    crm具体问题具体实现protected override object LoadPageStateFromPersistenceMedium()
            }
    2重载 SavePageStateToPersistenceMedium方法
    crm具体问题具体实现protected override void SavePageStateToPersistenceMedium(object viewState)
            }

  • 页面存储机制(cache)(待续)

  • 异常处理(待续)

  • 页面皮肤(待续)

  • 数据访问机制(待续)

  • 代码安全机制(待续)

相关文章: