2012-07-11 2 views
4

사용자 지정 페이지를 개발하려고합니다. 여기서 특정 게시에있는 모든 구성 요소 목록을 얻으려고합니다.현재 로그인 한 사용자 - 사용자 지정 페이지에 대한 세션 가져 오기

aspx 페이지의 페이지로드에서 현재 로그인 한 사용자에 대한 세션을 가져와야합니다.

내가 코드

Session currSession = new Session(); 
    Response.Write(currSession.User.Id); 

나는 다음과 같은 오류를 사용하려고

. 내가

Session currSession = new Session(WindowsIdentity.GetCurrent()); 
Response.Write(currSession.User.Id); 

와 코드를하려고하면

Access is denied for the user NT AUTHORITY\NETWORK SERVICE 

나는 다음과 같은 오류가 발생합니다.

The name 'WindowsIdentity' does not exist in the current context 

1) 사용자 정의 페이지에서 세션을 얻으려면 어떻게해야합니까? 사용자를 얻으려면 HttpContext.Current.Request.ServerVariables.Get ("REMOTE_USER")을 사용할 수 있습니까?

2.) 맞춤 페이지에서 CoreServices 또는 TOM.NET API를 사용하여 CM에서 정보를 가져와야합니다. 어느 쪽이 선호되는 옵션인가.

답변

4

템플릿 및 이벤트 시스템 이외의 프로세스에는 TOM.NET API를 사용할 수 없습니다. 대신 핵심 서비스 API를 사용하십시오 (세션이 필요 없습니다).

은 템플릿 및 이벤트 시스템 이외의 프로세스에 TOM.NET API를 사용하면 안됩니다. 기술적으로는 가능하지만, 그렇게 사용하지 않아야합니다. 핵심 서비스가 소개됩니다.

<%@ Import Namespace="System.Web.Security" %> 
<% 
string[] rolesArray = Roles.GetRolesForUser(); 
Response.Write("<strong>LoggedIn User = </strong>" + HttpContext.Current.User.Identity.Name + "<br />"); 
Response.Write("<strong>Roles LoggedIn User = </strong><br />" + string.Join(",<br />", rolesArray)); 
%> 

어쩌면 당신이의의 Web.config에 이것을 추가해야합니다 : Windows 인증을 사용하려면

+0

예외 인 대상 관리자/핵심 서비스로 주소록이 노출되지 않는 AM 기능 - 자체 e http://stackoverflow.com/questions/10962162/core-service-2011-address-books. – Neil

+0

Tridion 웹 사이트의 "내부"에서 실행중인 경우 다음을 사용하여 현재 사용자를 얻을 수 있습니다. HttpContext.Current.User.Identity.Name –

+0

Tridion.AudienceManagement.API는 TOM.NET의 일부가 아니며, 하나는 사용자 정의 페이지 등에서 사용할 수 있습니다. 거기에는 Session이 필요하지 않습니다. –

2

, 당신은 현재 사용자와 .ASPX에 부착 된 역할을 보려면이 조각을 사용할 수 있습니다 사용자 정의 페이지 :이 도움이

<authentication mode="Windows" /> 
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider" /> 

희망, 거스

관련 문제