1. 程式人生 > >C#使用MVC框架實現登陸驗證

C#使用MVC框架實現登陸驗證

ring 數據庫訪問 傳輸數據 圖片 ont resource 使用 如果 database

步驟一:需求分析

我的目標是利用MVC框架實現簡單登陸驗證。從客戶端輸入用戶名和密碼。然後傳給數據庫驗證。如果數據庫存在此用戶名ID和密碼,則返回客戶端賬戶姓名的成功提示。否則返回客戶端失敗信息。

技術分享圖片

技術分享圖片

技術分享圖片

步驟二:搭建MVC框架

新建項目>WEB>WEB應用程序

技術分享圖片

技術分享圖片

技術分享圖片

步驟三:先添加一個控制器,然後VIEWS文件夾下找到對應和控制器同名文件夾裏面搭建VIEW界面樣式,最後修改路由 確定能在瀏覽器訪問

控制器:

public class LoginController : Controller
{
// GET: Login
public ActionResult Index()
{
return View("LoginView");
}

VIEW:

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>登陸界面</title>
</head>
<body>
<form method="post" action="/Login/Login"> //action 提交後再返回到控制器處理此時可先用#代替
用戶名:<input name="LoginId" type="text" /> <br />
密 碼:<input name="LoginPwd" type="password" /> <br />
<input type="submit" value="登陸" /><br/>
@ViewData["info"] //瀏覽器獲取控制器的內容


</form>
</body>
</html>

路由RouteConfig.cs

namespace MVCLogin
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional }
);
}
}
}

步驟四:瀏覽器訪問沒問題後,正式開始編寫內容,首先編寫Models模型部分。通常Models包含實體類、通用數據訪問類、通用數據庫訪問類(ADO.NET)

1.實體類編寫。編寫用戶登陸實體類。與數據庫字段對應。

技術分享圖片

namespace MVCLogin.Models
{
/// <summary>
/// 登陸實體類,屬性:登陸ID,登陸密碼,用戶名
/// </summary>
public class SysAdmin
{
public int LoginId { get; set; }
public String LoginPwd { get; set; }
public String AdminName{ get; set; }

}
}

2.通用數據庫訪問類,這裏只編寫查詢的方法

namespace MVCLogin.Models
{
/// <summary>
/// 通用數據訪問類
/// </summary>
public class SQLHelper
{
//定義數據庫連接字符串
public static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString(); //將數據庫連接字符串寫在Web.config中,這裏通過ConfigurationManager類的ConnectionStrings屬性調用

public static SqlDataReader getReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{

throw ex;
}
}
}

Web.config加節點

<connectionStrings>
<add name="connString" connectionString="server=.; DataBase=SMDBWeb; Uid=sa;Pwd=abc.123"/>
</connectionStrings>

3.編寫實體訪問類。實體訪問類的命名一般是實體類名+Service。具體操作實體,封裝實體,返回實體對象

namespace MVCLogin.Models
{
/// <summary>
/// 數據訪問類
/// </summary>
public class SysAdminService
{
/// <summary>
/// 根據登陸賬號和密碼登陸
/// </summary>
/// <param name="objSysAdmin"></param>
/// <returns></returns>
public SysAdmin AdminLogin(SysAdmin objSysAdmin)
{
string sql = "SELECT AdminName FROM dbo.Admins WHERE LoginId={0} and LoginPwd=‘{1}‘";
sql=string.Format(sql, objSysAdmin.LoginId, objSysAdmin.LoginPwd);
SqlDataReader sdr = SQLHelper.getReader(sql);
if (sdr.Read())
{
objSysAdmin.AdminName = sdr["AdminName"].ToString(); //如果用戶名ID和密碼正確就返回用戶名
}
else
{
objSysAdmin = null; //如果用戶名ID和密碼錯誤則清空對象
}
sdr.Close();
return objSysAdmin;
}

}
}

步驟五:編寫控制器。控制器一般包含三個步驟。1.獲取數據2.業務處理3.返回數據

namespace MVCLogin.Controllers
{
public class LoginController : Controller
{
// GET: Login
public ActionResult Index()
{
return View("LoginView");
}
public ActionResult Login()
{
//[1]獲取數據
SysAdmin objSysAdmin = new SysAdmin
{
LoginId = Convert.ToInt32(Request["LoginId"]),
LoginPwd = Request["LoginPwd"].ToString()
};
//[2]業務處理
objSysAdmin=new SysAdminService().AdminLogin(objSysAdmin);
if (objSysAdmin!=null)
{
ViewData["info"] = "歡迎您," + objSysAdmin.AdminName; //使用ViewDate傳輸數據
}
else
{
ViewData["info"] = "用戶名或密碼錯誤";
}
//[3]返回數據
return View("LoginView");
}
}
}

C#使用MVC框架實現登陸驗證