최근에는 시나 같은 웨이보를 만들려고 합니다. 최근에 MVC를 배우고 있는데 MVC 기술을 활용하여 이 프로젝트를 구현하고 싶습니다.
Weibo이기 때문에 별 생각 없이 사용자 로그인이 있어야 한다는 것을 아셔야 하는데 일반 asp.NET 로그인과는 다릅니다. 다음은 제가 오후에 조사한 결과입니다. + one night~ ~~
먼저 데이터베이스와 테이블을 구축해야죠.
주요 구조에 대해 이야기해보겠습니다
Controller:
HomeController 홈페이지의 컨트롤러입니다
LoginController 로그인 컨트롤러입니다
클래스:
CDBTemplate.cs 데이터베이스 데이터에 해당하는 클래스로 데이터베이스의 구조를 설명합니다.
///////////////////////////////////////// /// 나는 구분선 \\\\\\\\\\\\\\\\\\\\\\\\
먼저 HomeController의 return 함수에서 컨트롤러
public ActionResult Index(){...}
앞에 추가:
[Authorize(Roles = "admins")]
그렇습니다.
[Authorize(Roles = "admins")] public ActionResult Index() { ... }
이 설명은 여기에 권한 확인을 추가하여 관리자 역할의 사용자만
에 액세스할 수 있도록 허용한다는 의미입니다. web.config로 이동합니다. 파일에 추가합니다:
<authentication mode="Forms"> <forms loginUrl="~/Login" timeout="2880" /> </authentication>
이는 로그인의 로그인 인터페이스를 가리키는 전체 웹사이트에 사용자 확인을 추가한다는 의미입니다. 컨트롤러
CDBTemplate.cs 파일의 클래스:
public class LogOnModel { [Required] [Display(Name = "用户名")] public string UserName { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "密码")] public string Password { get; set; } [Display(Name = "下次自动登陆")] public bool RememberMe { get; set; } }
그런 다음 기본 반환 함수에 Index.cshtml 뷰를 추가합니다. LoginController 컨트롤러, 페이지에 다음 코드를 추가합니다:
@model Weibo.Models.LogOnModel //LogOnModel 是CDBTemplate.cs文件里的一个类 @using (Html.BeginForm("Login","Login",FormMethod.Post)) { @Html.TextBoxFor(m => m.UserName) @Html.ValidationMessageFor(m => m.UserName, "请输入用户名!", new {style="color: #f00" }) @Html.PasswordFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password,"请输入密码!",new {style="color: #f00" }) @Html.CheckBoxFor(m => m.RememberMe) @Html.LabelFor(m => m.RememberMe) @Html.ActionLink("忘记密码", "forgotpwd", null, new {@class="rt",target="_blank" }) <input type="submit" value="登陆微博" /> }
위 코드에서 Html.BeginForm("Login", "Login" , FormMethod.Post) 메소드 첫 번째 매개변수는 호출할 컨트롤러를 지정하는 메소드의 이름을 의미하고, 세 번째 매개변수는 서버에 양식을 제출하는 데 사용할 메소드를 의미합니다. 보안을 위해 우편으로 제출하는 것을 선택하세요.
그런 다음 LoginController 컨트롤러에 이 메서드를 추가합니다.
[HttpPost, ActionName("Login")] public void Login(FormCollection collection) { object obj = SqlHelper.ExecuteScalar("select UserId from CDBUsers where UserName=@uname and Password=@pwd", new SqlParameter("@uname", collection[0]), new SqlParameter("@pwd", Weibo.Models.Myencrypt.myencrypt(collection[1]))); if (obj != null) { FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, collection[0], DateTime.Now, DateTime.Now.AddMinutes(30), false, "admins" ); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); System.Web.HttpContext.Current.Response.Cookies.Add(authCookie); } Response.Redirect("~/"); }
좋아요~~~~
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 또한 모든 분들이 PHP 중국어 웹사이트를 지지해 주시길 바랍니다.
더 많은 [Asp.Net MVC4] 사용자 로그인 구현 예제 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!