> 백엔드 개발 > C#.Net 튜토리얼 > [Asp.Net MVC4] 사용자 로그인 확인 구현 예시

[Asp.Net MVC4] 사용자 로그인 확인 구현 예시

高洛峰
풀어 주다: 2016-12-24 13:35:16
원래의
1817명이 탐색했습니다.

최근에는 시나 같은 웨이보를 만들려고 합니다. 최근에 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 중국어 웹사이트를 주목하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿