2009-08-18 2 views

답변

2

포털 ID가있는 경우 DotNetNuke.Entities.Users.UserController에이 작업을 수행하는 방법 (GetUser)이 있다고 생각합니다. 사용자는 여러 포털에서 공유 될 수 있으므로 UserInfo 객체를 제대로 채우기 전에 사용자 정보를 요청하는 포털을 알아야합니다 (분명히).

사용자 ID 만 있고 포털 ID가없는 경우 먼저 포털 ID를 얻을 수 있는지 확인하는 것이 좋습니다. 그렇지 않다면 필요한 것을 얻기 위해 데이터베이스로 이동해야합니다. 이상적으로는 (데이터베이스가 보장 된 API가 아니기 때문에) 가능한 한 조금만있을 수 있습니다. 당신은 단지 사용자의 포털 ID를 얻기 위해 빠른 쿼리를 수행한다면, :

SELECT PortalID From {databaseOwner}{objectQualifier}UserPortals WHERE UserID = @userId 

그런 다음 당신이 필요로 검색 할 UserController.GetUser를 사용할 수 있습니다. 현재 사용자를 얻을 필요가있는 경우

1

그것은 간단 :

Dim nowUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo 

그냥 메모를.

Dim nowUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo 
response.write(nowUser) 
2

이 (C 번호와 DNN 5.x의에)

private UserInfo _currentUser = 
        DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo(); 

그런 다음 사용자 정보 나중에 ...

int UserID = _currentUser.UserID 
를 사용
+0

실제로 당신이 할거야 'response.write (nowUser.UserID) – braindice

7

을 시도해보십시오 문제가 무엇인지 사용자 ID를 반환하지 것

5

한 가지 수정 사항으로 bdukes에서 게시 한 방식을 사용했습니다. PortalId는 PortalSettings에서 가져올 수 있습니다.

DotNetNuke.Entities.Users.UserInfo user = DotNetNuke.Entities.Users.UserController.GetUser(PortalSettings.PortalId, user_id, true); 
+0

어떤 생각이 자바 스크립트에서 할 수 있습니까? –

+0

DNN 7에 있다면 webapi를 사용하여 전화를 걸고 정보를 얻을 수 있습니다. – braindice

3

현재 사용자를 얻으려면 버전 7.3에서 을 사용하십시오.이 중 모두는입니다. 이제 즉, Instance 속성과 GetCurrentUserInfo() 방법을 통해 액세스에게 사용자 정보를 사용해야합니다 :

DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo() 

은 그러므로 당신이뿐만 그래서 UserId를 얻을 수 : 그래서

DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo().UserID 

, 사용자 ID 부여,

UserController.GetUserById(PortalId,your_user_id) 

PortalId 즉, DNN 컨텍스트가 제공하는 속성입니다, 그래서 당신은 간체 수 있습니다 : 당신은 다음과 같이 사용자의 정보를 얻을 수 위와 같이 입력하십시오.

이 정보가 도움이되기를 바랍니다.

관련 문제