日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能...

發布時間:2023/12/20 windows 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

登錄窗口已經完成了,現在可以完成最后的工作了,主要就是完成Membership提供者的配置。

首先打開Web.Config文件,在configuration段內添加一個數據庫連接定義,代碼如下:

?<connectionStrings>

??? <addname="ApplicationServices"connectionString="Data Source=192.168.0.254;InitialCatalog=SimpleCMS;Persist Security Info=True;User ID=sa;password=abcd-1234;"providerName="System.Data.SqlClient" />

?</connectionStrings>

?

?

代碼中的數據庫地址、用戶名和密碼請根據自己實際情況填寫。

然后在system.web段內添加Membership提供者的定義,代碼如下:

?

???<membership>

?????<providers>

???????<clear />

???????<add name="AspNetSqlMembershipProvider"type="System.Web.Security.SqlMembershipProvider"connectionStringName="ApplicationServices"enablePasswordRetrieval="false" enablePasswordReset="true"requiresQuestionAndAnswer="false"requiresUniqueEmail="true" maxInvalidPasswordAttempts="5"minRequiredPasswordLength="6"minRequiredNonalphanumericCharacters="0"passwordAttemptWindow="10" applicationName="/" />

?????</providers>

???</membership>

???<roleManager enabled="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>

?

代 碼中,membership段是用來定義Membership提供者的,定義的內容包括,類型(type)為 SQLMembershipProvider,表示使用的是SQL Server提供者;數據庫的連接字符串(connectionStringName)為剛才定義的連接字符串;密碼恢復 (enablePasswordRetrieval)為fallse;重置密碼(enablePasswordReset)為true;要求密碼問題 (requiresQuestionAndAnswer)為false;要求唯一電子郵件(requiresUniqueEmail)為true;最大的 密碼錯誤嘗試次數(maxInvalidPasswordAttempts)為5次;密碼最小長度 (minRequiredPasswordLength)為6;密碼最小的非字符個數 (minRequiredNonalphanumericCharacters)為0;有效密碼或密碼答案的連續失敗嘗試次數進行跟蹤的時間間隔 (passwordAttemptWindow)為10分鐘。最后的applicationName,表示當前應用程序的標識,因為沒有多個應用程序使用 該數據庫提供者,因而設置為“/”。

而roleManager段定義的角色提供者,主要定義就是連接字符串和應用程序的標識。

完成后,在主菜單中選擇項目,ASP.NET配置,會在瀏覽器中打開如圖13所示網站管理工具。如果剛才的配置正確,現在就可以添加用戶和角色了。

圖13 網站管理工具

單擊頁面中的安全標簽頁,將看到如圖14的頁面。

圖14 安全標簽頁

單擊角色中的“創建或管理角色”,在如圖15所示的頁面中,先創建系統管理員和普通用戶兩種角色。

圖15 創建角色

返回安全標簽頁,單擊用戶中的“創建用戶”創建admin和test兩個用戶。兩個用戶的密碼都設置為123456,電子郵件隨便填吧。還要將admin的角色設置為系統管理員,test的角色設置為普通用戶。

好了,用戶和角色都有了,可以完成最終的驗證代碼了。回到VS,切換到AccountController.cs文件,先加入對System.Web.Security的引用,然后修改驗證用戶和密碼的判斷語句,并加上寫入認證Cookies的代碼,最終代碼如下:

??? if(Membership.ValidateUser(model.UserName,model.Password))

??? {

???????FormsAuthentication.SetAuthCookie(model.UserName, true);

???????success = true;

??? }

??? else

??? {

???????errors.Add("UserName", "錯誤的用戶名或密碼。");

???????errors.Add("Password", "錯誤的用戶名或密碼。");

??? }

?

?

好了,簡單驗證過程就完成了,不過,貌似太簡單了點,呵呵。下面搞得復雜點。先把這段語句屏蔽掉,調用Membership的GetUser方法根據用戶名返回類型為MembershipUser用戶對象,代碼如下:

MembershipUser user = Membership.GetUser(model.UserName);

?

接著判斷user是否為null,如果為null,表示用戶不存在,返回用戶名和密碼錯誤信息,代碼如下:

if (user != null)

{

?

}

else

{

???errors.Add("UserName", "錯誤的用戶名或密碼。");

???errors.Add("Password", "錯誤的用戶名或密碼。");

}

?

?

如果用戶不為null,表示用戶存在。接著檢查用戶IsApproved屬性,看用戶是否被禁用了,如果是,返回用戶被禁用信息,代碼如下:

if (user.IsApproved)

{

}

else

{

???errors.Add("UserName", "用戶已被禁用,請與管理員聯系。");

}

?

接著檢查IsLockedOut屬性,判斷用戶是否已被鎖定,如果鎖定,返回用戶被鎖定信息,還需要多少分鐘解鎖,代碼如下:

TimeSpan ts = user.LastLockoutDate.AddMinutes(60) -DateTime.Now;

if (user.IsLockedOut && ts.Minutes > 0)

{

???errors.Add("UserName", "用戶名已被鎖定," + ts.Minutes + "分鐘后才能再次嘗試登錄。");

}

else

{

if (user.IsLockedOut)user.UnlockUser();

}

?

代 碼中的LastLockoutDate屬性會返回用戶被鎖定的時間,通過AddMinutes方法,加上鎖定時間間隔,當前是60分鐘,就可計算出解鎖時 間,將解鎖時間減去當前時間,就可根據它們的差值ts判斷是否已經過了解鎖時間了。如果ts大于0,表示還沒達到解鎖時間,否則就意味著已經解鎖,可以繼 續驗證了,因而,要調用UnlockUser方法來解鎖用戶。

接著就可調用ValidateUser方法驗證用戶名和密碼了,也就是把剛才屏蔽掉的那段代碼復制到這里。

在驗證成功后,還要驗證用戶的角色是否符合登錄后臺的要求,目前只運行系統管理員和普通用戶登錄,因而驗證成功后的代碼要修改成這樣:

if (Roles.IsUserInRole(model.UserName, "系統管理員 ") |Roles.IsUserInRole(model.UserName, "普通用戶"))

{

???FormsAuthentication.SetAuthCookie(model.UserName, false);

??? success =true;

}

else

{

???errors.Add("UserName", "您沒有權限登錄系統。");

}

?

至此,整個登錄過程就完成了。

轉載于:https://blog.51cto.com/dqhuang/991731

總結

以上是生活随笔為你收集整理的一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。