2014-04-16 2 views
1

그래서 내 앱에서 인증을 구현하고 있습니다. 크레디언은 XML 파일에 저장됩니다 (실제 프로젝트가 아님).ASP MVC 4 인증 사용자 이름 얻기

public ActionResult Login(LoginModel model, string returnUrl) 
    { 
     if (ModelState.IsValid && Membership.ValidateUser(model.UserName, model.Password)) 
     { 
      FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
      return RedirectToAction("Index", "Objects", new ObjectsModel(//user name)); 
     } 

     // If we got this far, something failed, redisplay form 
     ModelState.AddModelError("", "The user name or password provided is incorrect."); 
     return View(model); 
    } 


public class CustomMembershipProvider : SimpleMembershipProvider 
{ 
    public override bool ValidateUser(string username, string password) 
    { 
     return true; 
    } 
} 

[Authorize] 
public class ObjectsController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(new ObjectsModel(//get authentificated username)); 
    } 
} 

두 질문 :

  1. 내가 바로 그 일을하고 있는가 여기

    코드인가? 아니면 WebSecurity 등을 사용해야합니다. 보안 앱으로 충분합니까? 아니면 전체 직원에 대한 오해가 있습니까?

  2. 어떻게 내가 ObjectsController (주석 줄)에서 UserName에 로그인 할 수 있습니까?

답변

2

내가 제대로하고 있습니까? 아니면 WebSecurity 등을 사용해야합니다. 보안 앱으로 충분합니까? 아니면 전체 직원에 대한 오해가 있습니까?

  • 사용자 인증 정보 UserContext, UserProfiles, IPrincipal이 포함되어 회원 인프라의 일부로서 할 일이 많이 필요합니다. model/dbcontext 대신에 파일에 대해 사용자의 유효성을 검사하려는 경우 표준 WebSecurity 구현으로 최소한의 노력으로이 작업을 수행 할 수 있습니다.

  • Visual Studio에는 asp.net mvc 템플릿 프로젝트 구성원 구현 준비 코드가 함께 제공됩니다. 그것은 당신에게 모델, 문맥을 깊이 엿볼 것입니다.

자세한 내용은 this article을 참조하십시오.

어떻게 UserController (주석 행)에 UserName에 로그인 할 수 있습니까?

  • 이상적으로 사용자 인증을 사용하면 프로젝트 뷰/컨트롤러 주위 어디에서나 활용할 수 IPrincipal 사용자 컨텍스트 (User.Identity)를 노출한다.
0

Visual Studio에는 Asp.Net MVC Template project membership 구현 준비 완료 코드가 있습니다 (예 @PalakBhansali 대답이 맞습니다).

Visual Studio에서 새 프로젝트 생성을 통해 샘플 응용 프로그램을 얻을 수 있습니다. 코드를 원하는대로 수정할 수 있습니다.

File-> New -> Visual C# -> Web -> ASP.NET MVC 4/3/2 Application.

참고 :하지 빈 웹 응용 프로그램

  • 그것은 안전한 응용 프로그램이 될 것입니다.
  • @User.Identity.Name을 통해 사용자 이름에 로그인 할 수 있습니다.
  • 그런 다음 프로젝트를 올바르게 학습하고 있습니다.

행운을 빕니다)