2009-08-26 3 views
4

Im은 HttpContext.User를 사용하는 방법에 대해 정말로 분실했습니다. 어디서나 FormAutherication에 대해 훌륭한 것을 읽었지 만 어떻게 작동하는지 알 수 없습니다. 내가 이런 짓을하면 :ASP.NET MVC : HttpContext.User를 사용하는 방법

ControllerContext.HttpContext.User = new GenericPrincipal(GetUser(username, password), roles); 

ControllerContext.HttpContext.User에는 무엇이 들어 있습니까? 이 방법으로 사용자에 대한 정보에 어떻게 액세스합니까?

public User GetUser(string username, string password) 
    { 
     try 
     { 
      var user = (from u in dm.Users 
         join r in dm.Roles 
         on u.Role_ID_FK equals r.RoleID 
         where u.Username.Equals(username) && u.Password.Equals(password) 
         select u).Single(); 

      return user; 
     } 
     catch (Exception e) 
     { 
      return null; 
     } 
    } 

그리고 난 사용자 이름 또는 역할처럼 내보기에 사용자 정보를 원한다면 다음, 내가 호출 할 수 있습니다 ControllerContext.HttpContext.User.Username에서 :

임 내가 이런 행동을 가지고 있다고 생각 내보기. 그러나이 방법을 보는 것은 다른 방법입니다.

여러분, 내게 굴착 방향에서 걷어차 기나 할 수있는 사이트 링크를 게시 할 수 있습니까? 로그인 코드 사용에

+1

HttpContext 개체에 대한 .Net 설명서를 확인 했습니까? 그건 내가 처음 볼만한 곳이야. – Lazarus

답변

9

을 사용할 수 있습니다 난 당신이 코드를하려고 노력 정확히 모르겠어요 당신 게시되었지만 HttpContext.User에 대한 도움말이 있습니다. 평신도의 용어로는 현재 사용자이 특정 페이지를 요청하고 실제로 컨트롤러 내에서 접두사없이 "사용자"로 참조 할 수 있습니다.

User.Identity는 사용자가 인증되면 사용자에게 알리고, 그렇다면 사용자 이름과 인증 방식 (양식 또는 Windows)을 알려줍니다.

일반적으로 을 입력하면 컨트롤러 작업이 올바른 임무를 수행 할 수 있도록 페이지를 요청하는 사용자 이름이 표시됩니다. 뭔가 같이 :이 예에서

public ActionResult Index() 
{ 
    //you should probably use the [Authorize] attribute on the Action Method 
    //but you could check for yourself whether the user is authenticated... 
    if (!User.Identity.IsAuthenticated) 
     return RedirectToAction("LogIn"); 

    MyUser u = repository.GetUser(User.Identity.Name); //lookup user by username 
    ViewData["fullname"] = u.FullName; //whatever... 
    return View(); 
} 

사용자가 인증되지 않은 경우, 그들은 로그온 페이지로 리디렉션됩니다, 그들이왔다 경우의 조치 방법은 User.Identity.Name를 (사용 로그인 한 사용자 이름 또는 Windows 로그인)을 사용하여 데이터베이스에서 MyUser 객체의 인스턴스를 찾아 반환하고 ViewData에 사용자의 전체 이름을 표시합니다.

4

:

FormsAuthentication.SetAuthCookie("userName", remeberMe); 

는 인증 된 사용자를 설정하려면, 다음

<%= User.Identity.Name %> 
<%= User.IsInRole("role") %> 
관련 문제