首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网页制作-> FrontPages教程
创建ASP.NET数据存储层(5)-.NET教程,Asp.Net开发
作者:网友供稿 点击:23
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
iis、asp.net 和 sql server 的安全性问题

  sql server、internet 信息服务器和 asp.net 引擎都提供了坚实可靠的安全模型,它们可以很好地在一起协同工作。为了保证用户数据和应用程序的安全,microsoft 还为每项服务的默认设置设置了相当低的值。大多数开发人员面临的挑战是如何使用 sql server、iis 和 asp.net 在应用程序和数据之间设置适当的信任级别,而不会留下可被别人轻易攻入的安全漏洞。由于涉及三类服务(sql server、iis 和 asp.net),所以需要采取三个关键的步骤来确保解决方案的安全。本部分讨论一种为 web 应用程序设置足够权限和信任级别的更常用(且可靠)的方法。

  注意:关于安全性和 web 解决方案这个大主题,本系列文章难以展开较充分的讨论。要更好地理解此问题和可能的解决方案,请参阅安全 asp.net 应用程序的创建模式和实践系列文章:验证、授权和安全通信。
定义 dotnetkb 自定义 iis 用户帐户。

  保证 web 应用程序安全性的最安全的方法是定义一个权限有限的自定义用户,然后对 iis 进行配置,使之能够在执行您的 web 应用程序时能作为自定义用户运行。这是相当容易实现的,可以确保访问您的 web 应用程序的每个访问者都只具有您希望他们具有的权限。

  第一步是生成一个新的 windows 用户(本例中称为 dotnetkb),为其设置一个增强型密码,然后将其添加到 windows 来宾组 (guest windows group) 中。同时,确保选中 password never expires(密码永不过期)和 user cannot change password(用户不能更改密码)复选框。这样将生成一个权限有限的用户,在 iis 中运行您的 web 应用程序时,您可以将其用作标识(参见图 7)。


图 7:生成的权限有限的用户

  然后,调用 internet 信息服务器管理员并选择承载这些网页的 web 应用程序。在本例中,您可以选择承载前文所生成的测试页的 web 应用程序 (dotnetkb_website)。在树视图中的 web 应用程序上单击鼠标右键,然后从上下文相关菜单中选择 properties...(属性...)。然后选择 directory security(目录安全性)并单击该对话框 anonymous access and authentication control(匿名访问和验证控制)部分中的 edit(编辑)按钮。最后,输入自定义用户名 (dotnetkb),取消选择 allow iis to control password(允许 iis 控制密码)复选框,并输入该自定义用户帐户的密码。完成所有这些工作之后,单击 ok(确定)按钮,将这些更改保存到 iis 配置数据库中(参见图 8)。


图 8:authentication methods(验证方法)对话框

  此时,iis 将在一个权限有限的自定义帐户下运行。任何访问者访问您应用程序的网页时,都将以这个自定义用户身份运行,且只具有该自定义用户的验证权限。

  授权 dotnetkb 用户帐户访问 sql server

  然后,您需要为该自定义用户授予访问数据库 (dotnetkb) 的相应权限。为此,您可以使用 microsoft sql server 企业管理器或编写一个自定义脚本,以创建一个这样的用户并授予其访问特定对象的权限。本文介绍如何使用 sql server 企业管理器完成此操作。您还可以从后文中看到一个脚本示例。

  注意:尽管 visual studio .net 2003 具有与 sql server 兼容的许多强大的集成功能,但也不允许从 visual studio .net 2003 中轻松管理用户和用户权限。在大型的组织和团队中,这些高级任务通常由数据库管理员完成。

  因此,启动 sql server 企业管理器之后,您可以按照以下步骤将自定义用户 (dotnetkb) 添加数据库中(参见图 9):

  在左侧的树视图中,展开节点以显示 dotnetkb 数据库。在我的计算机上,树视图的结构如下:console root | sql server group | (local) (windows nt) | databases | dotnetkb。
然后,在数据库下的 users(用户)节点上单击鼠标右键,并选择 new database user...(新建数据库用户...)。显示 database user properties - new user(数据库用户属性 - 新建用户)对话框时,从 login name(登录名)下拉框中选择 <new>(<新建>)。

  显示 sql server login properties - new login(sql server 登录属性 - 新建登录)对话框时,选择 general(常规)选项卡,并在 name(名称)输入框中输入 dotnetkb。确保选中 windows authentication(windows 验证)单选按钮,并从 domain(域)下拉框中选择自定义用户帐户所在的计算机的名称。然后从 database(数据库)下拉框中选择 dotnetkb。
  现在,选择 databases(数据库)选项卡,在对话框顶部的列表中找到 dotnetkb 数据库并选中它。然后,确保选中对话框底部列表中的 public(公共)角色。最后,单击对话框底部的 ok(确定)按钮,保存您的更改。


图 9:在数据库中添加自定义用户

  然后,您需要为 dotnetkb 数据库中的所有存储过程和自定义函数添加执行权限。为此,您只需为 public(公共)角色授予权限。您可以将权限授予 dotnetkb 用户,这样将使以后的登录(当这些用户获得访问 dotnetkb 的权限时)更容易执行存储过程,而不需要为每个用户添加新的权限。

  下面是为 dotnetkb 数据库中的存储过程和函数授予执行权限的步骤:

  突出显示树视图中 dotnetkb 数据库下的 users(用户)节点,以显示此数据库的用户列表。找到 dotnetkb 用户并在其上双击,打开 database users properties(数据库用户属性)对话框。
突出显示(选中)public(公共)角色时,单击 properties...(属性...)按钮,打开 database role properties(数据库角色属性)对话框。然后单击 permissions...(权限...)按钮,显示数据库对象和权限设置列表。

  选中对话框顶部 database role(数据库角色)下拉列表中的 public(公共)角色之后,找到为此数据库定义的所有存储过程和自定义函数(可能需要展开对话框才能看到全名),并确保选中各项旁边的 execute(执行)复选框。您可能会发现某些系统对象的其他一些复选框也被选中了,请不要更改这些选项。
最后,设置所有的 execute(执行)权限后,单击 ok(确定)按钮,保存更改并关闭对话框。依次单击 ok(确定)按钮,直到所有对话框均被关闭。

  至此,您已为 iis 创建了自定义用户,并设置了该用户在 sql server 中的相应权限。现在,您需要在 asp.net web 项目中进行一个配置更改,确保 asp.net 使用同一个用户帐户执行对 sql server 的所有调用。

  设置您的 asp.net 应用程序以模拟 dotnetkb 用户

  为 iis 下运行的 asp.net web 应用程序生成坚实可靠的配置的最后一个步骤是:配置 asp.net web 应用程序,使之能够接受来自 iis 的 windows 用户标识并能用于访问其他操作系统资源。为此,您只需在 web.config 根文件中输入一行代码。

  注意:尽管目前我们还没有真正开发出用于承载我们的页面的 asp.net web 应用程序,但您可以使用这些信息在生成测试页的下一节中验证数据访问层的功能。

  修改后的 web.config 文件如下所示:

<configuration>
<system.web>
... 其他要素 ...
<identity impersonate="true"/><!-- 假设 iis 用户标识 -->
... 其他要素 ...
</system.web>
</configuration>

  请注意,您只需添加 <identity> 元素并将模拟特性设置为 true(真)。不必输入用户帐户或密码,因为这些信息将由 iis 提供。也就是说,即使其他人能够读取您的配置文件,他们也无法确定使用哪些标识凭据来执行您的 web 应用程序。

  至此,您已生成了自定义用户,并为其设置了访问 sql server 和 iis 的相应权限。现在,我们来创建一些测试页,确保它能够正常工作。从这里您可以看出一切正常。

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·VB 二进制,八进制,十进制,十六进制转换-.NET教程,VB.Net语言
·以实例说明如何使用C#从数据库中提取数据,按要求自动生成定制的Excel表格-.NET教程,C#语言
·一个登陆窗口的记数判断登录(有用哦),了解"IF"语句的用应-ASP教程,数据库相关
·asp.net无法调试的解决方法-ASP教程,ASP应用
·C#多线程共享数据-.NET教程,C#语言
·在ASP中连接数据库(连接字符串)-ASP教程,数据库相关
·web应用分页技术-JSP教程,资料/其它
·虚拟主机上asp.net运行权限不足问题及解决-.NET教程,Asp.Net开发
·生成随机字符串-.NET教程,评论及其它
·阀控式铅酸蓄电池的维护
最新文章
·链接的12种类型和获取方法_营销推广
·fireworks绘制简洁精致的rss图标_fireworks教程
·公布如何判断adsense无效点击的隐忧_网赚技巧
·企业网站制定搜索引擎优化策略的方案_站长心得
·论坛有感:一个人做,真的很难_站长心得
·制作行业网站时所需考虑的一些问题_站长心得
·在xp下享受windows vista屏保待遇_windows xp
·个人博客如何实现自己的商业价值?_站长心得
·分析网页的关键字密度与网站排名_站长心得
·首页设计所应该达到的几个设计1_站长心得
相关主题
  • 创建asp.net程序时候发生错误"http/1.0 500 server error"的一个解决办法_asp.net技巧
  • 创建ASP.NET数据存储层(7)-.NET教程,Asp.Net开发
  • 创建ASP.NET数据存储层(6)-.NET教程,Asp.Net开发
  • 创建ASP.NET数据存储层(4)-.NET教程,Asp.Net开发
  • 创建ASP.NET数据存储层(3)-.NET教程,Asp.Net开发
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭