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


======================================================
注:本文源代码点此下载
======================================================

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^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值