您的位置:首页 > 移动开发

Visual Studio 2008中ASP.NET AJAX的新应用程序服务:Role Application Service

2012-01-16 02:44 465 查看
======================================================

注:本文源代码点此下载

======================================================

visual studio 2008中asp.net ajax的新应用程序服务:role application service
asp.net ajax在目前版本中已经内建了两种application service:用户身份认证(authentication service)和用户个性化(profile)(请参考:《在asp.net ajax中使用应用程序服务和本地化(0):目录》)。
在最新的visual studio 2008 (orcas)中,asp.net ajax又添加了一个新的application service:roles。
《asp.net ajax in action》的作者david barkol在blog上给出了一小段介绍。在asp.net
ajax javascript class browser中,我们可以看到最新的roleservice组件:



使用起来也非常类似现有的application service。首先在web.config中添加配置:
sectiongroup name="webservices" type="system.web.configuration.scriptingwebservicessectiongroup, system.web.extensions, version=3.5.0.0, culture=neutral, publickeytoken=31bf3856ad364e35">
section name="jsonserialization" type="system.web.configuration.scriptingjsonserializationsection, system.web.extensions, version=3.5.0.0, culture=neutral, publickeytoken=31bf3856ad364e35"
requirepermission="false" allowdefinition="everywhere" />
section name="profileservice" type="system.web.configuration.scriptingprofileservicesection, system.web.extensions, version=3.5.0.0, culture=neutral, publickeytoken=31bf3856ad364e35" requirepermission="false"
allowdefinition="machinetoapplication" />
section name="authenticationservice" type="system.web.configuration.scriptingauthenticationservicesection, system.web.extensions, version=3.5.0.0, culture=neutral, publickeytoken=31bf3856ad364e35"
requirepermission="false" allowdefinition="machinetoapplication" />
section name="roleservice" type="system.web.configuration.scriptingroleservicesection, system.web.extensions, version=3.5.0.0, culture=neutral, publickeytoken=31bf3856ad364e35" requirepermission="false"
allowdefinition="machinetoapplication" />
sectiongroup>
还有一部分:
system.web.extensions>
scripting>
webservices>
authenticationservice enabled="true" requiressl = "false"/>
profileservice enabled="true" />
roleservice enabled="true"/>
webservices>
scriptresourcehandler enablecompression="true" enablecaching="true" />
scripting>
system.web.extensions>
然后他又给出了一段示例代码:
function pageload(){
loadroles();
}
function loadroles(){
sys.services.roleservice.load(onloadrolescompleted, onloadrolesfailed, null);
}
function onloadrolescompleted(result, usercontext, methodname){
if (sys.services.roleservice.isuserinrole("administrator")){
$get("adminview").style.display = "block";
}
}
function onloadrolesfailed(error, usercontext, methodname){
alert(error.get_message());
}
michael schwarz看到了david的这个帖子,并在他的blog中对上述这段示例代码进行了解释。还指出了这样实现的一个潜在问题,那就是如何防止本来没有某种权限的用户调用某个服务器端方法。
这里他坚毅的解决方案是使用principalpermissionattribute属性,并在从前的帖子中给出了一段示例代码(这个示例代码针对的是ajaxpro,不过对于asp.net
ajax也依然适用):
[ajaxpro.ajaxmethod]
[principalpermission(securityaction.demand, role = "admin")]
public static string adminmethod()
{
return "hello admin, you can get this text only if you are a admin!";
}
[ajaxpro.ajaxmethod]
[principalpermission(securityaction.demand, role = "admin")]
[principalpermission(securityaction.demand, role = "editor")]
public static string editorandadminmethod()
{
return "hello editor or admin, both roles can see this text!";
}
当然,这部分的内容就是所谓的asp.net ajax安全性问题了。近期我一直在研究这个问题,稍后会写出一些心得体会。
绿色通道:好文要顶关注我收藏该文与我联系



posted on 2007-08-02 11:48
dflying chen 阅读(11156)
评论(25)编辑
收藏
评论:
1252901
#1楼
2007-08-02 12:01 | anikin[未注册用户]
书什么时候出来呢?
回复 引用
#2楼[楼主]
2007-08-02 12:05 | dflying chen

@anikin
现在就差封面了,还没有定下来。马上就可以印刷了,实在抱歉
回复 引用 查看
#3楼
2007-08-02 13:16 | overred

不错 可惜本本安装vs2008的时候老出错 只能观摩 不能亵玩
回复 引用 查看
#4楼
2007-08-02 13:24 | cd[未注册用户]
赫赫...dflying排名上了一个,纪念一哈.
回复 引用
#5楼
2007-08-02 14:31 | zzz[未注册用户]
偶也来庆祝一下?
回复 引用
#6楼
2007-08-02 14:38 | leepy

请问一下。
我下了david barkol里面的代码,对里面的角色账户密码有点疑问
adminuser/p@ssword1 - devuser/p@ssword1
请问两个账户密码是怎么通过角色权限的?
回复 引用 查看
#7楼
2007-08-02 15:59 | cat chen

不错不错,其实应该设计providerbase对应的客户端对象,方便各种provider的配置以及客户端调用,这样自定义的provider才能灵活实现对应的客户端组件。
回复 引用 查看
#8楼
2007-08-03 10:32 | clark zheng

终于又看到你继续写博了
回复 引用 查看
#9楼
2007-08-03 13:25 | 说话者[未注册用户]
最近在研究什么呢?
回复 引用
#10楼[楼主]
2007-08-03 20:10 | dflying chen

@overred
安装过程需要很多的精力,我也是尝试了好多次……
回复 引用 查看
#11楼[楼主]
2007-08-03 20:11 | dflying chen

@cd
谢谢
回复 引用 查看
#12楼[楼主]
2007-08-03 20:11 | dflying chen

@zzz
:)
回复 引用 查看
#13楼[楼主]
2007-08-03 20:11 | dflying chen

@leepy
“是怎么通过角色权限的”这句话是什么意思呢?
回复 引用 查看
#14楼[楼主]
2007-08-03 20:12 | dflying chen

@cat chen
你是说客户端有一个类型?具体什么意思?我没有理解
回复 引用 查看
#15楼[楼主]
2007-08-03 20:12 | dflying chen

@clark zheng
呵呵,我一直也没停阿,最近可能慢了点:)
回复 引用 查看
#16楼[楼主]
2007-08-03 20:12 | dflying chen

@说话者
就是blog上面的各种东西啊,呵呵
回复 引用 查看
#17楼
2007-08-04 09:46 | 里奥特

学习。
回复 引用 查看
#18楼[楼主]
2007-08-05 12:13 | dflying chen

@里奥特
:)
回复 引用 查看
#19楼
2007-08-26 11:44 | handandaily[未注册用户]
3
回复 引用
#20楼
2007-08-28 17:54 | yier[未注册用户]
hello,dflying chen:
向您请教一个问题.
我写的asp.net 页面,在点击linkbutton显示数据的时候,字体会变大.
假设有三个linkbutton,我对应了mutiview 中的三个view 页面.
点击分别显示.可是不论点击那个button,整个页面字体都会变大.
我页面上用过updatepanel.
不知道这个问题怎么解决?
回复 引用
#21楼
2007-09-18 14:09 | old roger[未注册用户]
ms产品更新的可真快
回复 引用
#22楼
2007-09-18 14:12 | old roger[未注册用户]
头疼
回复 引用
#23楼
2007-11-18 00:08 | bridal dress[未注册用户]
我的天,2005才刚会,2008就要出来了。。。
回复 引用
#24楼
2008-07-02 20:07 | bourne[未注册用户]
我想问一下asp.net ajax 调用ws的安全性问题,开发环境是vs2005,就是ws就写在网站内部,没有单独提出来,也就是调用本网站的ws,现在是一个订单页面,生成订单也是调用ws,把一些基本数据传给ws然后ws那边在处理,现在的问题就是这些传过来的数据中可能包括地址,如果被人拦截修改了地址,就麻烦,我就想知道怎么处理这种情况,加密数据?用wse?或者其他?怎么使用列?
回复 引用
#25楼
2008-07-13 12:46 | 孙世芳[未注册用户]
陈老师,您好!
最近因工作需要,拜读了您的《asp.net ajax程序设计》,p想创建一个asp.net ajax客户端应用程序。按昭书中的拂点,在vs2005搭建建好了编程环境,但我现在想使用vs2008,网上有人说vs2008不支持ctp,想请您给指点一下。
回复 引用
注册用户登录后才能发表评论,请 登录 或 注册,返回博客园首页
首页博问闪存新闻园子招聘知识库
最新it新闻:
·android平台12月广告浏览份额51.6% 超越ios
·测试版ios源代码显示ipad 3或将支持siri
·斯蒂芬·霍金的新电脑
·京东商城2.95亿竞得北京商业地一块
·美报业巨头合作facebook谷歌 传媒重视网络网络
»
更多新闻...
最新知识库文章:
·javascript 面向对象编程
·持续集成之“everything is code”
·持续集成之“软件自我识别”
·持续集成之戏说check-in dance
·什么是闭包。

我的理解
»
更多知识库文章...



china-pub 2011秋季教材巡展
china-pub 计算机绝版图书按需印刷服务

======================================================

在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定
这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐