zoukankan      html  css  js  c++  java
  • ASP.NET 2.0 中Login控件的使用

    摘自:http://uglytroll.yculblog.com/post.1245791.html

    [原创]ASP.NET2.0中的membership问题

    UglyTroLL @ 2006-04-25 18:07                          
                                 
    研究了一天的问题,耗了半包烟后终于搞定,谢谢BAIDU让我搜到了一个QQ群,谢谢群里热心的大大Jacky,下面正题:
    1、membership中的存储地址问题:
    在ASP.NET2.0中用Createuserwizard默认注册的用户存储在.net2005的sql server2005 experss下,里面默认的一堆表名都是以aspnet_开头的,我们所存储的users信息就在aspnet_membership和aspnet_users下,如果我们想使用自己机器上所用数据库(如Sql server2000.access等)而不是。NET默认的2005的话就需要进行以下配置:
    (1)、在.net freamework安装路径下(如: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215\CONFIG )找到machine.config文件进行编辑,找到  <connectionStrings>...........</connectionStrings>项,里面填加自己的connection string,如:    <add name="tjproject" connectionString="Data Source=IMIS-DCA970B8AA;Initial Catalog=tjproject;Integrated Security=True" />
    后面继续查找<membership>等,参考代码:
       <membership>
         <providers>
           <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="tjproject" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Clear" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
         </providers>
       </membership>
       <profile>
         <providers>
           <add name="AspNetSqlProfileProvider" connectionStringName="tjproject" applicationName="/" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
         </providers>
       </profile>
       <roleManager>
         <providers>
           <add name="AspNetSqlRoleProvider" connectionStringName="tjproject" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
           <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
         </providers>
       </roleManager>
    在里面设置成员,角色,提供者的连接String,注意这里的connectionStringName要设置为先前connectionstring里面的name,不然跑的时候会报错
    (2)设置web.config
    同machine.config一样,只是注意这里的连接名不能和machine.config重名,而且在这里似乎不需要设置角色与providers,无须为他们填加代码,除非有特殊需要
    存储位置问题在这里告一段落
    2、如何设置membership中的密码存储规则:
    如果大家注意看上面的代码,就会发现在connectionstring后面有一堆属性的设置,这些属性可以使我们做一些非常有趣的事情出来,下面对一些重要属性做下说明,其他可见msdn
    enablePasswordRetrieval:是否允许成员检索自己的密码
    enablePasswordReset:是否允许成员重置自己的密码
    passwordFormat:密码存储格式,默认为hash,即存储在数据库中的密码是以哈希加密,防止别人进入数据库盗取密码。Clear为明文模式,其余请见MSDN
    maxInvalidPasswordAttempts:用户输入错误的密码后最大重试次数,超过就封锁帐户
    passwordAttemptWindow:锁定帐户的时间,分钟为单位
    minRequiredPasswordLength:最小密码长度
    minRequiredNonalphanumericCharacters:密码中必须的非字母数字字符的数目(出于安全性考虑,防止被暴力破解)
    注意的是,这些设置必须同时在machine.config与web.config下设置才会在页面生效,设置不同的情况我没有测试,不知道会出现什么情况
    做完这些设置后,用Createuserwizard创建用户时就会严格参照这些规则,可以以自己需要自定义存储规则
  • 相关阅读:
    Linux操作系统基本操作(1)
    C#: 获取当前路径不要用Environment.CurrentDirectory
    Python:Selenium Chrome无弹窗+property/attribute/text
    Python:Selenium+Webdriver安装
    Redis开启远程登录连接
    Redis Error:/var/redis/run/redis_6379.pid exists, process is already running or crashed
    Oracle VM VirtualBox虚拟机内Linux系统硬盘扩容步骤(CentOS6.5)
    PHP开发中Redis安装(CentOS6.5)
    MySQL创建用户与授权(CentOS6.5)
    CentOS下二进制包/源码安装方式的MySQL卸载步骤
  • 原文地址:https://www.cnblogs.com/kentyshang/p/420642.html
Copyright © 2011-2022 走看看