使用微軟的用戶驗證,權限管理的方法

一.使用配置好的數據庫,

1.首先建立想定的數據庫(只填寫名字不加載任何表,如:Login數據庫)

2.使用vs兼容工具命令提示.如圖:

3.導入數據庫所需要的table

  a.使用剛才打開的工具命令提示,寫入代碼aspnet_regsql如圖

  b.打開如下窗口后進行配置

注意上面箭頭的位置要與剛才,或者事先準備好的數據庫對應起來.

之後就是點下一步和完成就OK了.

配置完后的數據庫裡面的表

到目前位置數據庫的配置已經完成,下面就是使用

二.編寫配置文件

<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="server=.;database=mydb;uid=sa;pwd=123" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<profile defaultProvider="DefaultProfileProvider" >
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider" connectionStringName="DefaultConnection" applicationName="/"/>
</providers>
</profile>
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear/>
<add
name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="DefaultConnection"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
maxInvalidPasswordAttempts=""
minRequiredPasswordLength=""
minRequiredNonalphanumericCharacters=""
passwordAttemptWindow=""
applicationName="/" />
</providers>
</membership>
<roleManager enabled="true" cacheRolesInCookie="true">
<providers>
<clear/>
<add connectionStringName="DefaultConnection" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
<compilation debug="false" targetFramework="4.0" />
</system.web> </configuration>

複製以上代碼到web.config配置文件

注意:

1.圖上三處ConnectionStringName一定要相同(也就是必須要和最上面的ConnectionString相同)

2.<membership></membership>標籤中放的是用戶的內容不要修改

3.enablePasswordRetrieval="false"--是否允許找回密碼,一般設置為false

4.enablePasswordReset="true"--是否允許重置密碼,一般為true

5.requiresQuestionAndAnswer="false"--是否必須要求問題的答案,登錄的時候用,一般為false

6.requiresUniqueEmail="true"--要求唯一的郵箱名,即郵箱名不能重複,一般為true

7.maxInvalidPasswordAttempts="5"--最大密碼的嘗試次數,超過該次數賬戶將被鎖定

8.minRequiredPasswordLength="6"--最小密碼長度

9.minRequiredNonalphanumericCharacters="0"--密碼中非字母和非數字的字符的個數,若不等於0表示必須非字母和非數字的字符

10.passwordAttemptWindow="10"--取得時間範圍(這裡是10分鐘),在此時間範圍內會追蹤提供有效密碼或密碼解答的連續失敗嘗試

三.使用

1.在相應頁面導入命名空間using System.Web.Security;

2.使用MembersShip类,MemberShipUser类調用

實例:導入命名空間后,Membership可以提供很多類似于創建創建,刪除User等方法,下面以註冊為例.

註冊代碼:

    protected void btnRegister_Click(object sender, EventArgs e)
{
MembershipCreateStatus state;
Membership.CreateUser(txtUID.Text, txtPWD1.Text, txtEmail.Text, txtQuestion.Text, txtAnswer.Text, false, out state);
if (state == MembershipCreateStatus.Success)
{
Literal1.Text = "創建成功";
}
}
txtUID.Text--用戶名; txtPWD1.Text--密碼; txtEmail,Text--電子郵箱; txtQuestion,Text--安全問題;  txtAnswer.Text--安全問題答案;
false--新用戶不可登陸; out state--用來返回用戶的註冊狀態,返回一個MembershipCreateStatus類,枚舉型,包含多個驗證等屬性. 完成后查看數據空中已經有信息了,並且關於賬號安全的信息都已經經過加密,即使是DBA也看不到相關的信息

注意:理論上做完註冊和登錄頁面應該就可以正常登錄.但是在aspnet_Membership表也就是成員表中哈有一個IsApproved字段用來限制登錄,bit型變量,只有修改為true才可以正常登錄(IsApproved,IsApproved,IsApproved.重要的事情一定要說三遍.....)

												

.Net使用微軟自帶的用戶驗證和登錄授權的更多相关文章

  1. MahApps.Metro控件更換微軟視窗主題

    先來看一下微軟默認的視窗主題(左:Window)與MahApps.Metro的視窗主題(右:MetroWindow), Window   MetroWindow   MetroWindow似乎美觀多了 ...

  2. 微軟将弃用 System.Data.OracleClient

    http://www.cnblogs.com/WizardWu/archive/2010/05/17/1737009.html 微軟将从 .NET 4 以后的版本弃用 System.Data.Orac ...

  3. [转帖]微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient

    转帖--微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient Posted on -- : eaglet 阅读() 评论() 编辑 收藏 原贴 http://www ...

  4. 微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient 以及Oracle 的各种连接方法

    这是微软官方 ADO.NET Team Blog 去年就公布的消息: http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracl ...

  5. Chrome Apps將是Google送給微軟的特洛伊木馬?

    今天,Google 發表了 Chrome Apps,不同於之前 web app,此舉是要把 Chrome 瀏覽器升級為真正的 app 平台,將 Chrome OS 發展成一個成熟的作業系統,可以視為 ...

  6. laravel框架之自帶登錄&註冊

    //控制器層 <?php namespace App\Http\Controllers\admin; use App\Models\admin\Users; use Illuminate\Htt ...

  7. facebook api介绍

    转自(http://sls.weco.net/node/10773) 一.Facebook API 基礎概念 Facebook API 概論 : API 最大的好處在於可以讓程式開發人員只需要根據 A ...

  8. 問題排查:DataGridView 資料行下拉選單,資料繫結階段顯示 DataGridViewComboBoxCell 值無效

    可能原因: 1.下拉選單的選項資料繫結晚於 DataGridView 的資料繫結 2.下拉選單的 DataPropertyName 屬性,比 DisplayMember.ValueMember 早賦值 ...

  9. CentOS7安全设置 yum-cron系统自动更新,firewalld防火墙简单使用

    PermitRootLogin nosystemctl restart sshd.service; yum -y install firewalld; systemctl start firewall ...

随机推荐

  1. 夺命雷公狗---node.js---7fs模块初步

    目录结构如下所示: /** * Created by leigood on 2016/8/13. */ var http = require("http"); var fs = r ...

  2. 《Focus On 3D Terrain Programming》中一段代码的注释三

    取自<Focus On 3D Terrain Programming>中的一段: //--------------------------------------------------- ...

  3. Entity Framework 无法对没有主键的视图映射实体的解决办法

    我们在使用Entity Framework的时候经常会把数据库中的某一个视图映射为EF的实体,但是如果数据库视图中的列没有包含表的主键列,EF会报出警告说视图没有主键,导致视图映射为实体失败,错误如下 ...

  4. html5 图片热点area,map的用法

    今天看了一个html5在图片上面创建热点的标签,所谓图片热点就是给你一张图片然后你可以设置点击图片不同的位置进入不同的链接!如果下面是一张图片的话,里面在长方形.圆形.三角形区域都可以进入其他网页! ...

  5. linux设备驱动归纳总结(三):2.字符型设备的操作open、close、read、write【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59417.html linux设备驱动归纳总结(三):2.字符型设备的操作open.close.rea ...

  6. 161104、NoSQL数据库:key/value型之levelDB介绍及java实现

    简介:Leveldb是一个google实现的非常高效的kv数据库,能够支持billion级别的数据量了. 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计.特别是LSM算法.LevelDB ...

  7. React笔记_(4)_react语法3

    生命周期 很多语言中都讲了关于生命周期.这可是决定生命的周始,有没有存在感的关键啊. 生命周期,有生有死,有始有终,因果轮回,循环往复.(说多了) react中,主要说明的是 一个组件的生命周期.简单 ...

  8. ASP.NET MVC下的四种验证编程方式【转】

    ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效 性,我们将针对参数的验证成为Model绑 ...

  9. jQuery_Ajax_Json 异步接收PHP端传来的json数据

    [json]{"user_id":"1172940","rmb_point":"0","weixin_id&q ...

  10. js中RHS与LHS区别

    为什么区分RHS与LHS是一件重要的事情? 因为在变量没有声明(在任何作用域都找不到该变量的情况下),这两种查询的行为是不一样的. function foo (a) { console.log(a + ...