成员资格框架(Membership)的使用

(生成数据表)

运行C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe来生成该数据库的Membership结构


(用API实现登出功能)

//登出操作
FormsAuthentication.SignOut();
//跳转到登录页面
FormsAuthentication.RedirectToLoginPage();
//刷新页面,使登出生效
Response.Redirect(Request.CurrentExecutionFilePath);


(配置受权限控制的目录)

//给此目录的部分文件或目录添加例外,可不受权限控制

<location path="fm_head.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
 
  <location path="Image">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

//配置此目录的可访问权限,将下面这段放在对应的目录下的web.config(不支持mvc)

<system.web>
    <authorization>
      <deny users="?"/>
      <!--<allow roles="Admin,管理员"/>
      <deny users="*"/>-->
    </authorization>

  </system.web>

//在mvc里的用法(放在根目录的web.config,下面的path中的Admin对应的是~/Views/Admin目录,注意:path中不能使用“~”)

<location path="Admin">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>


(项目根目录的web.config)
Membership中Web.config的配置

<roleManager enabled="true"></roleManager>


  <authentication mode="Forms">
   <forms loginUrl="~/Admin/Login.aspx" timeout="1440"/>
  </authentication>

<membership>
      <providers>
        <add name="AspNetSqlMembershipProvider"
            type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            connectionStringName="LocalSqlServer"
            enablePasswordRetrieval="false" 
            enablePasswordReset="true" 
            requiresQuestionAndAnswer="true" 
            applicationName="/" 
            requiresUniqueEmail="false" 
            passwordFormat="Hashed" 
            maxInvalidPasswordAttempts="5" 
            minRequiredPasswordLength="7" 
            minRequiredNonalphanumericCharacters="1" 
            passwordAttemptWindow="10" 
            passwordStrengthRegularExpression=""/>
      << span>providers>

< span><membership>

下面是主要的几个属性的含义:

name:数据提供程序的名称,由于我们是从machine.config复制过来的,所以必须改名,防止重名

type:数据提供程序类型,如果使用的是MSSQL数据库,则保持不变即可,如果使用的是Oracle等其他数据库,则必须自己创建一个类来继承MembershipProvider抽象基类,重写里边的所有抽象方法,然后把类型写在这里即可。

connectionStringName:该属性必须指定在<connectionStrings>节点中,一个连接字符串的名字。

applicationName:应用程序名称,membership允许多个应用程序共同使用一个数据库来管理自己的用户、角色信息,各应用程序只需配置不同的applicationName即可,当然,如果想要多个应用程序使用同一份用户角色信息,只需设置一样的applicationName即可。

requiresUniqueEmail:顾名思义,用户注册时,是否需要提供未注册过的邮箱。

passwordFormat:密码存储格式,密码保存在数据库中的格式,最常用的有Clear(不加密)和Hashed(使用SHA1算法加密)
minRequiredPasswordLength:最小密码长度。

minRequiredNonalphanumericCharacters:指定有效密码中必须包含的特殊字符的最小数量,就是说不是字母也不是数字的字符的数量,比如+-*/,.什么的,增加密码强度

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

icewizardry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值