VS2010中Membership配置.docx_第1页
VS2010中Membership配置.docx_第2页
VS2010中Membership配置.docx_第3页
VS2010中Membership配置.docx_第4页
VS2010中Membership配置.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

membership中的配置文件参考:/xlb2000/archive/2010/06/13/1738074.htmlC:WindowsMicrosoft.NETFrameworkv4.0.30319Config下mechine.config中找name:数据提供程序的名称,由于我们是从machine.config复制过来的,所以必须改名,防止重名type:数据提供程序类型,如果使用的是MSSQL数据库,则保持不变即可,如果使用的是Oracle等其他数据库,则必须自己创建一个类来继承MembershipProvider抽象基类,重写里边的所有抽象方法,然后把类型写在这里即可。connectionStringName:该属性必须指定在节点中,一个连接字符串的名字。applicationName:应用程序名称,membership允许多个应用程序共同使用一个数据库来管理自己的用户、角色信息,各应用程序只需配置不同的applicationName即可,当然,如果想要多个应用程序使用同一份用户角色信息,只需设置一样的applicationName即可。requiresUniqueEmail:顾名思义,用户注册时,是否需要提供未注册过的邮箱。passwordFormat:密码存储格式,密码保存在数据库中的格式,最常用的有Clear(不加密)和Hashed(使用SHA1算法加密)minRequiredPasswordLength:最小密码长度。minRequiredNonalphanumericCharacters:指定有效密码中必须包含的特殊字符的最小数量,就是说不是字母也不是数字的字符的数量,比如+-*/,.什么的,增加密码强度配置到C:WindowsMicrosoft.NETFrameworkv4.0.30319下执行aspnet_regsql.exe,打开一个黑框,后弹出执行下一步选择为应用程序服务配置SQL Server,单击下一步选择本机上的SQLServer2005,采用SQL Server验证,然后选择相应的数据库单击下一步,数据表情况如下所示单击下一步单击下一步完成后刷新数据库,情况如右:配置web.config1、配置数据库连接字符串2、身份验证方式formsi、ii、iii、loginUrl 指向应用程序的自定义登录页。应该将登录页放在需要安全套接字层 (SSL) 的文件夹中。这有助于确保凭据从浏览器传到 Web 服务器时的完整性。 protection 设置为 All,以指定窗体身份验证票的保密性和完整性。这导致使用 machineKey 元素上指定的算法对身份验证票证进行加密,并且使用同样是 machineKey 元素上指定的哈希算法进行签名。 timeout 用于指定窗体身份验证会话的有限生存期。默认值为 30 分钟。如果颁发持久的窗体身份验证 Cookie,timeout 属性还用于设置持久 Cookie 的生存期。 name 和 path 设置为应用程序的配置文件中定义的值。 requireSSL 设置为 false。该配置意味着身份验证 Cookie 可通过未经 SSL 加密的信道进行传输。如果担心会话窃取,应考虑将 requireSSL 设置为 true。 slidingExpiration 设置为 true 以执行变化的会话生存期。这意味着只要用户在站点上处于活动状态,会话超时就会定期重置。 defaultUrl 设置为应用程序的 Default.aspx 页。 cookieless 设置为 UseDeviceProfile,以指定应用程序对所有支持 Cookie 的浏览器都使用 Cookie。如果不支持 Cookie 的浏览器访问该站点,窗体身份验证在 URL 上打包身份验证票。 enableCrossAppRedirects 设置为 false,以指明窗体身份验证不支持自动处理在应用程序之间传递的查询字符串上的票证以及作为某个窗体 POST 的一部分传递的票证3、配置Membership4、配置管理角色5、建web站点, 增加网页NewUser.aspx, 拖动CreateUserWizard控件, 设置其FinishDestinationPageUrl属性 为default.aspx, 就ok了.6、其他ASP.NET登陆控件也一样,拖上去就可以使用7、如果想要使用找回密码功能, 需要配置邮件服务器这样就完成了ASP.NET登陆控件的membership配置。以上环境基本配置好了,在Web项目中建个admin文件夹,中建个web.config和一个应用程序webform.aspx,web.config中然后浏览WebForm.aspx会发现地址栏最后是http:/localhost:58867/Account/Login.aspx?ReturnUrl=%2fadmin%2fWebForm1.aspx节点:顾名思义就是允许访问的意思,就是允许用户名为admin的用户访问。节点:就是禁止访问。这里用到了一个通配符“*”,通配符有两个:*代表所有用户,还有一个“?”代表所有匿名用户。所以就是不允许所有用户访问的意思啦,当然如果是:那意思就是不允许所有匿名用户访问。需要说明的是:所有的配置都是按照从上到下的顺序来匹配的,一但匹配成功,就不再向下匹配。举个例子: ASP.NET首先检测当前登录的用户名=admin?如果等于则不继续判断,直接允许该用户访问。如果不等于则继续判断当前登录的用户名=zhangsan等于,则允许访问,不等于则接着向下,读取到了这个配置,拒绝所有用户访问,跳转到LoginUrl指定的页面要求重新登录。可是如果这样,只能实现目录一级的权限控制,如果要控制某个文件的访问权限,又该如何做呢?难道非得把这个文件放到一个文件夹中,然后再添加web.config进行控制么?答案是否定的,对于单个文件的访问控制,ASP.NET也有相应的配置:看上面这个配置,我们可以在节点之上(必须是上面)再增加一个节点,通过path属性指明location内的配置是单独针对哪个文件即可。具体内容我就不多说了,想必大家也都看得懂。不过需要注意的一点就是:location节点可以有多个。这意味着同一个目录下的不同文件可以有不同的访问权限。好了,配置到这里算是完成一多半了。还有一个问题就是:如果我们的用户比较多,那么需要在配置文件中把这些用户全部罗列其中。并且以后添加了新用户,还得继续修改配置,太麻烦了!该怎么办呢?通用的做法就是引入角色的概念。给所有的用户分配一个角色,比如:users,admin等。然后我们只需要控制这些角色的访问权限即可。以后添加了新用户只需给这个新用户分配角色,而不用去修改配置,实在是方便。其实,membership也提供了角色的概念,只需要简单的配置一下就可以实现了。要实现角色功能,非常简单,我们还是去machine.config的节点下面找到节点,然后整个节点复制过来到web.config中去,一般会有两个子结点,我们删除一个,留下一个就可以了。全部内容如下:这个配置比较简单,各项配置和前面配置都一样,不再多说。稍微修改一下:这个roleManager多了个属性enable=true,这是因为角色管理默认情况下是关闭的,所以我们必须得设置为开启才行基本上,注册的功能就已经全部实现了。但是有一部分网站在你注册成功后,向你注册的邮箱中发送一封注册确认邮件。这个功能如果要我们自己写,也是比较麻烦的。其实CreateUserWizard控件给我们提供了这个功能,只需要简单的设置一下,那么在用户注册成功后,将会立刻收到一封确认邮件。具体的实现过程如下:在CreateUserWizard控件中加入如下代码: 代码省略 这个节点就是确认Email相关的设置,每个属性的具体含义为:BodyFileName:邮件的正文,邮件的正文存放在一个文本文件中,通过该属性指明文本文件的路径即可Priority:优先级。From:发件人,这个Email就是让注册用户看到的发件人的地址。IsBodyHtml:指明发送的正文中是否为HTML,如果在正文中使用了html标签,就必须把该属性设为“true” Subject:邮件标题 :在邮件中嵌入的资源列表,如上例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论