如果你对Membership还没有什么明确的概念,请打开你的 VS2005 看看一个网站工程的工具栏
如果你没有用过Membership功能 这些控件所提供的事件、属性、方法 几乎是完全不可用的,果然是莫名其妙。
先画一个简单的结构图
管理用户的基本类叫做MemberShip,整个的登陆方案其实是 System.Web.Security整个命名空间来支持的,其实叫做.net 2.0 Web安全方案
我们先来了解一下,Web.Security 的工作大概方式
具体配置如下
1 配置数据库
运行 /WINDOWS/Microsoft.NET/Framework/v2.0.50727 下的Aspnet_regsql.exe
或:打开Visual Studio 2008 Command Prompt,输入aspnet_regsql.exe,弹出ASP.NET SQL Server Setup Wizard…
随后 向导便在SQL Server中建立了对应的表。
这些表就是.Net 2.0 默认Provider对应的表,如果你在建立一个新项目 就没必要在自己写烦人的登陆了,这些表和它们所支持默认Provider的已经涵盖了很多高级功能,包括cookie的支持、跨网站跨进程的登陆、找回密码、邮箱认证等功能,当然我们也可以扩展它们。
相对的 我们还需要在web.config 建立这个数据连接字符串(<configuration >段中)
这样数据库的配置就已经完成了。
2 配置验证类型
一个asp.net缺省的身份验证是windows nt 登陆。如果我们要自己来处理验证信息就要在 <configuration >下面的<system.web> 段加入节点通知系统。
mode=forms 表示我不要用默认的windows NT 权限设置、而用我们配置的这种自定义的 面向网页界面的验证方式。
loginUrl 表示如果访问某页需要验证的话 跳转到哪一个(一般是有Login控件的)地址来进行登陆。登陆完毕,会直接跳回刚才的页面。
3 配置各种Provider
Provider对于Membership的感觉有点像 DataAdapter对于Dataset的感觉,都是可选择的配件,你配置了不同的Provider 就有不同的用户数据库可以访问
目前Provider 默认提供两种官方Provider: SQL Provider & ADSI Provider
前者通过SqlServer数据库保存 后者直接连结windows域的adsi服务
例如:
</providers>
</membership>
这个例子表示 我要用MemberShip_Connection这个连接字符串连接数据库(我们阴干待用的部分)
用户不能找回密码但是可以重新设置密码,找回的时候需要密码提示问题,储存在数据库中的密码用sha1进行加密 等等细节问题。 对于公用的Membership数据库 区别名为 DEMO_Membership .
Type是重要的选项 这决定你使用哪一个符合接口的具体的类型来担任Provider 项 如果你使用自己的Provider 可以把DLL作为引用添加在bin目录后 在这里填写详细的命名空间信息 比如“”System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” 之类的东西 这里不作赘述
注意:和上面的配置web.config意思是一样的。只是代码综合了一下
这时候 我们已经可以通过控件进行申请和登陆了 你所需要做的只是把控件拖到指定的页面上 然后test 也可以通过网站菜单下的管理工具进行修改
vs2005或vs2010-[项目]-[ASP.NET配置]
打开ASP.NET Web Site Administration Tool对Users、Roles以及Access Rules进行设置
有些选项可能进不去 但是用户的删除和修改都可以尝试使用了。 我们只需要进一步配置 更多的功能就向我们敞开大门了~~~
同样我们配置Roles 和 Profile 的Provider
<add name=”UserAge” type=”System.String” defaultValue =”21″></add>
<add name=”UserSex” type=”System.String” defaultValue =”Male”></add>
</properties>
</profile>
经过编译以后 你已经可以轻松的在你的页面里面访问和设置你现在登陆的用户的各种信息。