动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP教程 ]的信息

本月文章推荐
.SQL数据操作基础(初级) 3.
.ASP进阶教程Ⅰ:循序渐进学留言薄.
.解析asp的脚本语言.
.SQL数据操作基础(初级) 1.
.ASP设计常见问题及解答精要-1.
.ASP+学习笔记(四).
.NET移植案例学习:建造Web站点(3).
.亲密接触ASP.Net(2).
.ASP 3.0高级编程(三十一).
.手把手教你使用VB来创建ASP组件(.
.WSH实用讲座---第二讲 创建用户、.
.三天学好ADO之第一天.
.ASP讲座之一:网页开发利器:高效.
.使用ASP脚本技术.
.asp.net高级教程(五)-实战篇(中.
.NET移植案例学习:建造Web站点(4).
.ASP与数据库应用(给初学者).
.Asp深度揭密(下).
..NET之ASP WebApplication快速入.
..Net边学边讲(二).

ASP+学习笔记(五)

发表日期:2000-10-18 |


八、部署应用

    VS7将一个project编译成一个DLL文件,是一个NGWS装配,一个装配可以用在一台机器上,放到
全局Cache,供所有的应用访问,也可以放到某个应用的装配Cache中,只让一个应用访问。
    ASP+允许动态地引用一个类,只需要提供其装配和类名,格式:
    assemlyname#classname
    
九、安全
    
1).认证和授权
    除了利用Windows提供的认证服务外,ASP+还提供了一种服务,使基于 FORM的认证很方便地实现。
它是基于COOKIE工作的,所以客户浏览器必须支持COOKIE。需要注意的是,ASP+的认证服务是从属于
IIS的认证服务的。
    ASP+提供两种类型的认证服务,一是基于文件的ACL的,另一种是基于URL的。基于URL的培植在
配置文件中。
    配置<security>节中的<authentication>元素,可以有下面几种值:
    none:没有认证
    Windows:NT的用户/组
    Cookie:将未认证的用户转向一个特定的登陆页面。最常用的一种方法。
    Passport:必须安装PassPort服务。
    
    例:
    <configuration>
        <security>
            <authentication mode="Cookie"/>
        </security>
    </configuration>
    
2).基于Windows的认证
    当采用它时,一个WindowsPrincipal对象被附加到Request对象中。程序中可以判定当前用户是否
某类角色,如:
    if(User.IsInrole("Administrators"))
    ......
    还可以取得用户名,如:
    User.Identity.Name;
    User.Identity.Type;
    
3).基于FORM的认证
    a).选cookie模式,禁止匿名访问:
        <authentication mode="Cookie"/>
        <authorization>
            <deny users="?"/>
        </authorization>
    b).配置登陆页,加密用的键,以及Cookie名字,在<authentication>的子元素中:
           <cookie decryptionkey="autogenerate" loginurl="login.aspx" cookie=".ASPXCOOKIESDEMO"/>
    注意,loginurl可以是远程机器,但decryptionkey则在两台机器上的必须相同。descryptionkey
设成autogenerate则ASP+自动选择。但如果一台机器上有多个应用,则最好指定。同时,不同的应用
也该用不同的Cookie名字。因为同一台机器上的所有应用设置的Cookie都将被客户传回来,所以不能同名。
    c).提供登陆页
    d).验证完后(用你自己的验证机制,比如同数据库中的记录做比较),用下面一行:
    CookieAuthentication.RedirectFromLoginPage(username,persistence)
返回登陆页前一页。
    这一句也设定了Cookie,从而让它之后的ASP+认证服务认为用户已经经过了认证。
    如果不想转向原来的页,而是出现特定的页,比如登陆用户可选菜单页,那必须使用另外的方法,
可以用CookieAuthentication.SetAuthCookie设置好Cookie,用CookieAutentication.GetAuthCookie
来获得Cookie.
    另外,上面那行中的第二个参数是一个bool值,表示是否让Cookie永久保存,如果为false的话,
则当用户关闭浏览器后,cookie就消失了。
    用CookieAuthentication.SignOut可以清除Cookie,对应用户退出登陆。
    除了以上的用程序自己实现认证过程外,也可以用配置文件来实现让ASP+帮你完成验证。在
<authentication>节中:
    <credentials passwordformat="SHA1">
        <user name="white" password="ASPFSSA98527357">
    </credentials>
    然后程序调用CookieAuthenticationManager.Authenticate,提供用户名和口令作为参数,就可以
由ASP+帮你判定用户是否合法了。
    加密算法支持 Clear,SHA1,MD5。
    
4).认证拥护的角色
   可以针对用户,也可以针对角色(组),如:
   <authorization>
       <allow users="towhite@263.net"/>
       <allow roles="Admins"/>
       <deny users="*"/>
       
   多个用户名间用逗号","分割。
   还可以细化请求方法:
   <allow verb="post" users="white,saillor"/>
   其中,*代表任何人,?代表匿名用户。
   
十、国际化,本地化应用

    ASP+内部使用UNICODE,NGWS内部基类的String也是用UNICODE。可以支持某种特定的编码,实现转换。
    场所属性可以通过CultureInfo类访问,其中,CurrentCulture是同场所有关的函数的缺省值,
而CurrentUICulture是场所上的资源数据格式,例:
    <%=CultureInfo.CurrentCulture.NativeName %>
    <%=CultureInfo.currentUICulture.NativeName %>
    一些与场所有关的类提供格式化输出,如:
    <%=DateTime.Now.Format("f",null)%>
    <%=DateTime.Now.Format("f",new System.Globalization.CultureInfo("de"))%>
    
    可以为某个目录进行配置,如:
    <configuration>
        <globalization
        fileencoding = "utf-8"
        requestencoding = "utf-8"
        responseencoding = "utf-8"
        culture = "en-us"
        uiculture = "de"
        />
    或者在Page指令中:
    <%@ Page Culture ="fr" UICulture = "fr" ResponseEncoding = "utf-8" %>
    在页面内部还可以随时更改,使用 Thread.CurrentCulture修改,也就是说,同一个页面可以使用
很多种编码输出。

1).设置文化和编码
    中文的Culture应设为:zh-cn
    CultureInfo.CurrentCulture.Name = "zh-cn";
    CultureInfo.CurrentCulture.EnglishName = "Chinese(Peoples' Republic of China";
    CultureInfo.CurrentCulture.NativeName = "中文(简体)(中华人民共和国)";
    另外,类RegionInfo还提供地域信息:
    RegionInfo.CurrentRegion.NativeName = "中华人民共和国";
    RegionInfo.CurrentRegion.CurrencySymbol = "¥";
    
2).本地化ASP+应用
3).使用资源文件
    NGWS基类支持,运行时有个类叫ResourceManager的实例可以使用。可以用ResourceWriter或者实用
工具resgen.exe来生成资源文件,resgen以 key = value 的形式作为输入,如:
    ;
    ;注释
    ;
    [Strings]
    greetings = 欢迎你!
    more = 更多新闻
    
    资源文件的后缀为.resources。
    
    如何在页面中使用资源文件?
    用户的Content-Language可以用Request.UserLanguages[0]来取得。
    如何实现多语言支持?
    a).准备资源文件,生成.resources文件,文件取名规则:中间带Culture名。例:articles.en-us.resources
    b).global.asax中取得一个ResourceManager,并放如Application中供整个Application使用
    c).global.asax中为Application_BeginRequest事件写代码,根据客户的情况决定当前的Culture.
    d).在页面中用ResourceManager.GetString取得内容。
    
    例:
    //global.asax中:
    void Application_OnStart(){
        Application["RM"]=new ResourceManager("articles",Server.Mappath("resources")
+Enviroment.DirectorySeparatorChar,null);
        }
    void Application_BeginRequest(Object sender,EventArgs e){
        try {
            Thread.CurrentThread.CurrentCulture = new
                CultureInfo(Request.UserLanguages[0]);
        }catch(ArgumentException){
            Thread.CurrentThread.CurrentCulture=new CultureInfo("en-us");
            }
        Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
        }
        
    //default.asax中:
    ResourceManager rm;
    void Page_Init(Object sender,EventArgs e){
        rm=(ResouceManager)Application["RM"];
        }
        
    //输出内容时:
    <%= rm.GetString("greetings") %>

上一篇:ASP+学习笔记(四) 人气:14364
下一篇:ASP+配置 — ASP+配置概念(一) 人气:14529
浏览全部ASP+学习笔记的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-13 爬爬思特新闻管理系统 v2.0 Beta1
2008-10-13 Pligg v9.9.5 Beta
2008-10-13 广优邮件发送系统 v2.1
2008-10-13 缤纷互动视频交友 v3.1 RC
2008-10-13 MyShop网络商城 build 081005
2008-10-13 Chyrp 超轻量级开源博客引擎 v2.
2008-10-13 162100静态(论坛/文章)系统 v2.4
2008-10-13 金博人才招聘求职网黄金版 v4.2
2008-10-13 愚人笔记 v4.0
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号