仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 821|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计ASP.NET2.0使用中定制平安凭据之实际篇...

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:32:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。asp.net|平安 浏览提纲在缺省情况下,你只能利用VisualStudio2005的一个本机实例来办理与ASP.NET2.0一同刊行的SQLServer数据库中的平安凭据。本文将向你展现如何用一个Web服务来包装ASP.NET2.0供应者并经由过程利用一个Windows表单使用程序来办理凭据存储从而扩大这类办理才能。

  现在,不管是互联网仍是企业外部局域网程序一样平常都请求利用定制的体例来存储和办理用户帐户和脚色。为此,ASP.NET2.0供应了一个现成的供应者模子和一个SQLSever数据库。不幸的是,只能经由过程VisualStudio2005来办理该凭据数据库且只能针对本机Web使用程序。这无疑长短常不便利并且不克不及普遍利用的。

  本文形貌了一个超等用户可使用的完整定制的平安办理使用程序。这个使用程序经由过程用一个WEB服务对ASP.NET2.0供应者举行了包装并增添了一些功效。本文具体形貌了个中的计划办法,面对的成绩和包括在使用程序中的手艺。同时还向你先容了一些有效而强无力的手艺,如基于接口的Web服务,基于反射的Web服务兼容性,初级C#2.0编程,Web服务平安性和Web服务事件等。

  1、ASP.NET2.0凭据基本布局

  基于互联网的使用程序经常不依附Windows帐户和组,而是依附于基于表单的认证并分离某种如SQLServer的背景定制凭据存储。为了匡助开辟者免去反复计划和构建如许的办理计划,ASP.NET2.0刊行中到场了一个现成的平安凭据基本布局。ASP.NET2.0凭据存储其实不仅可用于ASP.NET使用程序,并且ASP.NETWeb服务和Windows表单使用程序都能利用它来办理它们的用户凭据。别的,Windows通信基本(编码名为Indigo)服务也能被简单地设置来利用ASP.NET2.0平安凭据存储。

  ASP.NET2.0利用一供应者模子来会见和办理凭据以免把使用程序耦合就任何特定存储上。在使用笼统供应者模子的长处的同时由程序员来开辟这个使用程序。超等用户卖力选择和办理特定的凭据存储。显现出ASP.NET2.0平安供应者的架构。


.ASP.NET2.0平安供应者模子
  MembershipProvider卖力办理用户,而RoleProvider卖力办理脚色。在凭据存储中,每一个用户或脚色仅限于一使用程序以内。如许就同意分歧使用程序利用一样的凭据存储而不会与相互的用户名或脚色相抵触。ASP.NET为SQL服务器、Windows和举动目次(见)等的凭据存储供应撑持。为了安装SQLServer凭据数据库,能够运转aspnet_regsql.exe程序,其地位是:

<WINDOWS>Microsoft.NETFramework<version>

  这个安装程序创立一个称为aspnetdb的新数据库-它包括一组使用程序的表、用户、脚色和存取这些表的存储历程。这个SQLServer数据库是使用最新的平安手艺经由经心计划的。别的,ASP.NET2.0还供应一套响应于供应者的类()。

  利用哪一个供应者的信息被保留在使用程序的设置文件(App.Config或Web.Config)中。你几近不必要间接与特定的供应者举行交互;而是,存在两个静态助理类:Membership和Roles-它们卖力从设置文件中读取利用哪一个供应者。默许的供应者(即当没有指定供应者时)就是SQLServer。Membership类(列表1)同意你创立和删除用户,检索关于用户的信息并寓目口令战略。

  列表1:Membership助理类

[Serializable]
publicclassMembershipUser{
 publicvirtualboolChangePassword(stringoldPassword,stringnewPassword);
 publicvirtualstringGetPassword(stringpasswordAnswer);
 publicvirtualstringResetPassword(stringpasswordAnswer);
 publicvirtualboolUnlockUser();
 //别的成员
}
publicstaticclassMembership{
 publicstaticstringApplicationName{get;set;}
 publicstaticMembershipUserCreateUser(stringusername,stringpassword);
 publicstaticMembershipUserCreateUser(stringusername,
 stringpassword,stringemail,stringpasswordQuestion,
 stringpasswordAnswer,boolisApproved,outMembershipCreateStatusstatus);
 publicstaticboolDeleteUser(stringusername,booldeleteAllRelatedData);
 publicstaticMembershipUserGetUser(stringusername);
 publicstaticvoidUpdateUser(MembershipUseruser);
 publicstaticboolValidateUser(stringusername,stringpassword);
 publicstaticboolEnablePasswordReset{get;}
 publicstaticboolEnablePasswordRetrieval{get;}
 //别的成员
}

  比方,为了在"MyApp"使用程序中创立一新用户,你仅需以下编码:

Membership.ApplicationName="MyApp";
Membership.CreateUser("MyUser","MyPassword",...);

  Roles类同意你创立和删除用户脚色,从脚色中增加或删除用户,检索用户的脚色会员信息和考证脚色会员。上面是该类的界说:

publicstaticclassRoles{
 publicstaticstringApplicationName{get;set;}
 publicstaticvoidCreateRole(stringroleName);
 publicstaticboolDeleteRole(stringroleName,boolthrowOnPopulatedRole);
 publicstaticvoidAddUserToRole(stringusername,stringroleName);
 publicstaticvoidRemoveUserFromRole(stringusername,stringroleName);
 publicstaticstring[]GetAllRoles();
 publicstaticstring[]GetRolesForUser(stringusername);
 publicstaticstring[]GetUsersInRole(stringroleName);
 publicstaticboolIsUserInRole(stringusername,stringroleName);
 //别的成员
}

  比方,要把脚色"Manager"增加到使用程序"MyApp"上,你能够以下编码:

Roles.ApplicationName="MyApp";
Roles.CreateRole("Manager");
  2、办理凭据存储

  假如你选择利用Windows或举动目次来存储你的使用程序的用户和脚色,那末你必要利用响应于这些存储的工具来办理,比方盘算机把持面板小程序或举动目次工具。实在,真实的成绩在于怎样办理存储在SQLServer中的凭据。为此,你可使用VisualStudio2005和一个Web扫瞄器,乃至不必要安装IIS。在一ASP.NETWeb工程中,从"Website"菜单下选择"ASP.NET设置"。这将使得VisualStudio宿主一个Web服务器,翻开一可用的端口而且导航到一套办理页面(见)。这些办理页面修正该Web使用程序设置文件而且也能够办理凭据存储(当不选择Windows认证时)。当利用VisualStudio2005时,你起首必要选择认证范例。你能够选择Windows或表单认证(互联网存取)。假如你选择表单认证,你还能够实行以下操纵:

  ・启动或作废基于脚色的平安

  ・创立和删除脚色

  ・创立和删除用户

  ・检索一用户的细节

  ・设置一用户的形态

  ・给用户赋于某脚色

  ・从脚色中删除用户


.ASP.NETWeb使用程序办理页面
  既然SQLServer是ASP.NET2.0供应的独一的企业级定制凭据存储,你能够独自利用VisualStudio2005驱动的办理页面来办理aspnetdb数据库,而不必任何别的存储。

  3、内置功效的不敷

  关于VisualStudio2005驱动的办理页面存在一些主要弱点:第一,你必要VisualStudio2005。使用程序或体系超等用户大概没有VisualStudio2005,更不必说怎样利用它了。缺省地,该办理页面利用一斜杠(/)来办理使用程序定名,而且没供应任何修正办法。第二,不成能存在远程存取-使用程序和VisualStudio2005必需共存,如许VisualStudio2005才干存取使用程序的设置文件。第三,基于扫瞄器的用户接口也不很友爱-你必要不休点击Back按钮,并且用户接口反应相称愚钝。别的,很多超等用户大概想利用的特性没法经过页面办理来完成,这就离开了底层供应者类所撑持的特征这一现实。这类体例还不克不及完成的方面有:

  ・更新年夜多半用户帐户细节

  ・检索、改动、重置一用户的口令

  ・检索以后在线用户数量信息

  ・可以从一次操纵的一个脚色中删除全体用户

  ・检索关于口令办理战略(比方长度、重置战略、口令范例等)的信息

  ・测试用户凭据

  ・考证用户脚色身份

  并且,另有别的的超等用户大概想要的特性也得不到撑持。这些特性包含可以检索数据库一切使用程序列表,可以从一使用程序中删除一切的用户,可以从一使用程序中删除一切的脚色,可以删除一使用程序(和它的一切相接洽的用户和脚色),可以删除一切的使用程序。总之,只管ASP.NET2.0供应了一个最高级的周全的凭据办理,但是它仅供应了一些原始的办理选项,一样平常的实践超等用户是不会利用它的。


.凭据办理器使用程序的一个快照
  这统统促使我本人来开辟一个定制的客户端凭据办理器使用程序来填补这些不敷。显现该程序的一个快照。前面的部分将先容我是怎样计划和构建该凭据办理器的。感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。
再现理想 该用户已被删除
沙发
发表于 2015-1-19 16:22:18 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-25 12:58:09 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
admin 该用户已被删除
地板
发表于 2015-2-2 22:10:10 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
深爱那片海 该用户已被删除
5#
发表于 2015-2-8 12:02:19 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
再见西城 该用户已被删除
6#
 楼主| 发表于 2015-2-25 11:52:51 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
7#
发表于 2015-3-15 14:21:55 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-22 02:07:55 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表