2012-02-09 5 views
0

ASP.NET MVC Forms 인증을 처음 사용하고 나 자신의 사용자 지정 멤버쉽 공급자를 만들기 시작했습니다. 내 ValidateUser 및 ChangePassword 메서드는 작동하지만 이제는 GetUser 메서드를 사용하여 내 사이트 전체에서 현재 사용자의 데이터를 반환하려고합니다. 내 AX 메서드는 사용자의 세부 정보 (예 : 전화 번호, 회사 이름 등)가 포함 된 AxaptaRecord를 반환합니다.이 메서드를 GetUser 메서드와 함께 사용하려면 어떻게해야합니까?ASP.NET MVC/AX - 사용자 지정 멤버십 공급자

답변

0

컨트롤러 :

var userDetails = System.Web.Security.Membership.GetUser(username); 

그런 다음, 당신이 볼 수있는 데이터를 전달하기위한 여러 가지 방법이 있습니다. 각 방법마다 장점과 단점이 있습니다. 자세한 내용은 here을 클릭하십시오.

강력한 형식화 된 모델은 유효성 검사를 쉽게 처리하고 데이터를 생성 할 수 있지만 둘 이상의 표가있는 경우 표시 데이터에는 좋지 않습니다.

MembershipUser user = new MembershipUser("AX", 
    (string)axRecord.get_Field("name"), 
    axRecord.get_Field("recid"), 
    email, //get this from SysUserInfo table 
    string.Empty, 
    string.Empty, 
    (bool)axRecord.get_Field("enable"), 
    !(bool)axRecord.get_Field("enable"), 
    (DateTime)Convert.ChangeType(axRecord.get_Field("createdDateTime"), typeof(DateTime)), 
    DateTime.MinValue, 
    DateTime.MinValue, 
    DateTime.MinValue, 
    DateTime.MinValue); 

그런 다음 당신은 당신의 getUser 메소드의 사용자를 반환 :

+0

그러나 내 Membership.GetUser() 메서드에서 MemberhipUser 데이터 형식이 아닌 AxaptaRecord 데이터 형식을 반환합니다. – CallumVass

+0

내 맞춤 멤버쉽 제공 업체를 사용하는 것이 가장 좋은 방법인지 잘 모르겠습니다. 더 나은 방법은 값을 세션 변수에 저장하는 것입니다. – CallumVass

관련 문제