2016-10-12 2 views
0

에 다른 방법에서 신분을 얻기 I가 기록되는 사용자 그래서 그것을 잘 실행됩니다.클래스로 같은 클래스

 var users = User.Identity.GetUserId(); 

      GetUserById_Result currentUser = UserClass.GetUser(users); 
      var role = currentUser.BranchOfficeId; 

하지만 어떻게 :하지만 같은 클래스에서 나는 컨트롤러에 난 그냥 이렇게 정말 간단? 것을 달성하기 위해해야 ​​할 일은 다른 방법

public static List<GetUsers_Result> SelectAll() 
     { 
      List<GetUsers_Result> lstResult = new List<GetUsers_Result>(); 


      try 
      { 
       using (EF.SSMA oContext = new EF.SSMA()) 
       { 

        lstResult = oContext.GetUsers().Where().ToList(); 
       } 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 

      return lstResult; 
     } 

에 사용자 값을 액세서 할 수 나는 같은 클래스 '나는

System.Web.HttpContext.Current.User.Identity.GetUserId(); 

와 GETUSERID를 호출하려고하지만 그것은 단지 빨간색으로 HttpContext를 표시하고 "기호 확인할 수 없습니다 말하는'

으로 HttpContext '를"그것을 액세서

내 목표는 BranchOfficeId = user.BranchOfficeId 인 사용자에게만 전화하는 것입니다.

도움을 주신 데 대해 감사드립니다. 감사합니다

+0

난 몰라 하나의 DTO와 다른 DTO를 왜 사용하는지 알아보십시오. 그들은 사실 동일하지 않습니까? – r1verside

답변

0

내가 당신의 질문을 이해한다면, 당신은 이미 패키지 Microsoft.Owin.Host.SystemWeb을 설치 있는지 확인하고 추가 using System.Web 다음 directely User.Identity.GetUserId()

+0

그리고 나는 이미 같은 클래스에있는 SelectAll 메서드에 getUser 메서드를 반환 할 수 없습니까? – Dawin

+0

죄송합니다. 질문을 이해할 수 없습니다 : / – RedUno

0

다음은 컨트롤러에서이 작업을 수행 할 수 있습니다 이유 ControllerHttpContext 속성이 있기 때문이다를 사용, 이는 현재 사용자의 ID를 포함하여 현재 요청의 세부 사항으로 작성되었습니다.

다른 클래스에서 사용자에게 액세스하려면 사용자를 메소드의 인수로 전달해야합니다. 컨트롤러에서 다음

using System.Security.Principal; 

public class SomeClass 
{ 
    public void SomeMethod(IPrincipal user) 
    { 
     // Whatever you need 
    } 
} 

: 예를 들어

public class SomeClass 
{ 
    public void SomeMethod(string username) 
    { 
     // Whatever you need 
    } 
} 
: 당신은 사용자의 이름 만 관심이 있다면

var someClass = new SomeClass(); 
someClass.SomeMethod(HttpContext.User); 

그러나, 당신은 실제로 단지 대신 문자열을 전달할 수 있습니다

그런 다음 컨트롤러 :

var someClass = new SomeClass(); 
someClass.SomeMethod(HttpContext.User.Identity.Name); 
관련 문제