zoukankan      html  css  js  c++  java
  • MVC中MemberShip的使用

    1、运行asp.net Sql Server注册工具:aspnet_regsql.exe,详细参见:http://msdn.microsoft.com/zh-cn/library/ms229862(v=VS.100).aspx。设置数据库。

    2、配置Web.config.

    在<configuration>节增加连接串:

    <connectionStrings>
        <add name="ApplicationServices"
             connectionString="data source=你的IP地址或数据库服务器名;database=数据库名; Persist Security Info=True;uid=用户名;pwd=密码"
             providerName="System.Data.SqlClient"/>

      </connectionStrings> 

    如果你的项目添加了ADO.NET Entity Data Model,将连接串写在 

    <connectionStrings>节里就可以。

    membership既然是用于成员资格管理,当然要求登录验证身份,所以首先加上一个forms验证。

    <authentication mode="Forms">
     <forms loginUrl="login.aspx" name=".aspxlogin"/>
    </authentication>

    login.aspx是验证失败时转向的页面。  

    可以自定义错误页面:

    <authentication mode="Forms">
          <forms loginUrl="~/SysManager/HasNoPermit" timeout="2880" />验证失败时指定的页面
        </authentication>

    同样在system.web节点下添加membership节点。

    <membership>
          <providers>
            <clear/>
            <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
                 enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
                 maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
                 applicationName="/" />
          </providers>
        </membership>
        <profile>
          <providers>
            <clear/>
            <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
          </providers>
        </profile>

    属性解释说明:

    defaultProvider:提供程序的名称。默认为 AspNetSqlMembershipProvider。如果你有多个Provider的话,指定一个默认值是明智的做法
    userIsOnlineTimeWindow:指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。
    hashAlgorithmType:用于哈希密码的算法的标识符,或为空以使用默认哈希算法。connectionStringName:membership数据库的连接名称。
    enablePasswordRetrieval:指示当前成员资格提供程序是否配置为允许用户检索其密码。
    enablePasswordReset:指示当前成员资格提供程序是否配置为允许用户重置其密码。 
    requiresQuestionAndAnswer:指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。
    applicationName:应用程序的名称。
    requiresUniqueEmail:指示成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。 
    passwordFormat:指示在成员资格数据存储区中存储密码的格式。值可选Clear、Encrypted 和 Hashed。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。
    maxInvalidPasswordAttempts:锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。
    minRequiredPasswordLength:密码所要求的最小长度。
    minRequiredNonalphanumericCharacters:有效密码中必须包含的最少特殊字符数。 
    passwordAttemptWindow:在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。这是为了 防止不明来源反复尝试来猜测成员资格用户的密码或密码提示问题答案的额外措施。
    passwordStrengthRegularExpression:计算密码的正则表达式。

    为membership配置web.config后,再配置其角色管理roleManager,也是在system.web下。

    <roleManager enabled="true" cacheRolesInCookie="true">
          <providers>
            <clear/>
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
            <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
          </providers>

        </roleManager> 

    属性解释说明:
    cacheRolesInCookie:指示当前用户的角色是否已缓存在某个 Cookie 中。
    当 CacheRolesInCookie 属性在配置文件中设置为 true 时,每个用户的角色信息就会存储在客户端上的某个 Cookie 中。当角色管理检查确定某个用户是否属于某个特定角色时,在调用角色提供程序在数据源中检查角色列表之前,将先检查角色 Cookie。该 Cookie 在客户端上会动态更新以缓存最近已验证的角色名称。
    web.config就配置差不多了。

     3、mvc3默认生成的internet项目包含了Account的代码,拷贝到项目中就可以了。
  • 相关阅读:
    Struts2-result配置结果视图
    Struts2 -action处理业务请求
    struts 2
    mvc模式
    vue之webpack安装配置vue
    vue之webpack
    文件上传
    LinkedList详解
    ArrayList详解
    HashMap详解
  • 原文地址:https://www.cnblogs.com/chshnan/p/2107571.html
Copyright © 2011-2022 走看看