设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> ASP教程 >> ASP+学习笔记(五)_ASP教程_src119.com

ASP+学习笔记(五)_ASP教程_src119.com -

八、部署应用

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

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

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



 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· SQL语言快速入门之三  _ASP教程_
· 利 用 ISAPI 实 现 向 数 据 库 中 添 加 记
· ASP进阶教程Ⅲ:给留言簿润下色_ASP教程_src119.
· ASP 3.0高级编程(二)_ASP教程_src119.co
· ASP 3.0高级编程(三十二)_ASP教程_src119.
· 手把手教你使用Java来编写ASP组件(5)_ASP教程_s
· asp+语法介绍(三)----asp+的服务器端编程初步_A
· ASP 3.0高级编程(二十八)_ASP教程_src119.
· 在ADO使用SELECT语法五_ASP教程_src119.c
· @ 指令参考之二 - @ENABLESESSIONSTATE

热点文章

更多