ASP.NET 2.0数据教程之二十三:基于用户对修改数据进行限制2010-08-09 翻译:cnblogs chagel返回“”导言很多Web程序都支持用户帐号,根据不同的登录用户提供不同的选 项,报表等功能。例如,就我们的教程中,我们要允许供应商公司的一些账户能 登录网站并更新它们的产品-包括产品名称和单价,或许还有供应商的信息,比 如它们的公司名称,地址,以及联系人信息等等。此外,可能我们还想包含一些 帐号留给我们自己公司用户,以便让它们能够登录并进行产品信息修改,比如股 价,级别调整等等。我们的Web程序同时也可以允许匿名登录,但是仅仅让这些用 户浏览数据。并包含一个系统用户,通过对ASP.NET页面中的数据控件能够进行数 据的增,改,删。在这篇教程中,我们将考察如何动态地根据不同的访问 用户来调整数据的修改能力。更进一步,我们新建一个页面,通过一个可编辑的 DetailsView来显示供应商信息,以及一个GridView控件列出供应商提供的产品。 如果访问者来自我们公司,它们可以查看任何供应商信息,编辑他们的地址,编 辑任何一个供应商提供的产品信息。然而,如果用户来自某个具体某个公司,它 们只能查看和修改他们自己公司的地址信息,或者修改他们那些没有缺货的商品 信息。图1:一个来自我们公司的用户可以编辑任何一个供应商信息

图2:一个来自某个供应商公司的他只能查看和编辑他们自己的信息

让我们开始吧!注意:ASP.NET 2.0的MemberShip体系提供了一 个可以创建,管理,验证用户帐号的标准的,可以扩展的平台。考虑到考察 membership体系已经超出了本文的内容,本文将假设匿名用户已经通过了 membership体系,可以认为他们是来自一个具体的供应商或者是我们公司。有关 更多membership的内容,可以参考我的 考察ASP.Net 2.0 的Membership, Roles, Profiles文章系列。第一步: 允许用户能够指定他们的访问权限在实际的Web应用程序中,一个用户的帐号信息已经包含了识别他们是来自我们公 司或者供应商,而且这种信息在用户一登录之后便可以在ASP.NET中代码访问到。 这个信息可以通过ASP.NET 2.0的角色体系获取,作为档案系统或者其他业务上的 用户帐号信息。由于这篇教程是示范针对不同登录用户调整数据修改的能 力, 并不是要凸显使用ASP.NET 2.0的membership,roles,和profile系统,我们 会使用一种很简单的机制来决定用户访问网页的这种能力-通过一个下拉框,用 户可以选择他们想要查看或修改任何一个供应商的信息,或者是作为一个供应商 ,只能查看和修改自己的信息。如果用户使用默认的可以查看和修改任何供应商 信息,那么她分页查看所有的供应商,编辑他们的地址信息,以及编辑选择的某 个供应商的产品的名字或者单价。如果选择了只能查看和编辑某个供应商的信息 ,那么她只能查看这个供应商的产品具体信息,更新那些没有过期的产品的名称 和单价。接下来我们将要新建一个DropDownList并给它填充系统供应商信 息数据。打开EditInsertDelete文件夹下的UserLevelAccess.aspx页面,添加一 个DropDownList控件,设置它的ID属性为Suppliers,并绑定到一个命名为 AllSuppliersDataSource的ObjectDataSource控件。图3:创建一个名为 AllSuppliersDataSource的ObjectDataSource控件