2

나는 페이스 북에서 온 방문자인지 여부와 해당 방문자가 해당 페이스 북 페이지의 관리자인지 여부를 감지하는 매크로를 가지고 있습니다.Internet Explorer를 사용하는 경우에만 Umbraco에서 로그인으로 리디렉션

관리자가 발견되면 방문자를 사전 정의 된 관리자 (Umbraco 백엔드 사용자)로 로그인하고 실시간 편집 모드로 리디렉션하기 위해 아래 코드를 실행합니다. 이것은 Chrome에서 완벽하게 작동하지만 Internet Explorer에서는 작동하지 않습니다. 인터넷 익스플로러에서 방문자는 로그인하지 않은 상태에서 Umbraco 로그인 페이지로 최상위 레벨 (iframe 외부)로 리디렉션됩니다. 그 이유는 무엇입니까?

var id = umbraco.BusinessLogic.User.getUserId("exampleadminuser"); // LoginName of an administrator 
var u = umbraco.BusinessLogic.User.GetUser(id); 
umbraco.BasePages.BasePage.doLogin(u); 

// Check if the user should be redirected to live editing 
if (u.DefaultToLiveEditing) 
{ 

    int startNode = u.StartNodeId; 

    // If the startnode is -1 (access to all content), we'll redirect to the top root node 
    if (startNode == -1) 
    { 
     if (umbraco.cms.businesslogic.web.Document.GetRootDocuments().Length > 0) 
      { 
      startNode = umbraco.cms.businesslogic.web.Document.GetRootDocuments()[0].Id; 
     } 
     else 
     { 
      throw new Exception("There's currently no content to edit. Please contact your system administrator"); 
     } 
    } 

    string redir = String.Format("{0}/canvas.aspx?redir=/{1}.aspx", GlobalSettings.Path, startNode); 
    Response.Redirect(redir, true); 
} 

답변

0

는 canvas.aspx 기능은 악명 높게 신뢰할 수없고 하나의 브라우저 다르게 반응하는 경우가 깜짝하지 그래서 patchily 지원합니다. 내 레벨 2 Umbraco 인증 과정에서 교사와 방안에있는 모든 사람들은 그것이 준비가되어 있지 않다고 합의했습니다.

전적으로 문제를 재현 할 수는 없지만 최신 버전의 Chrome, Firefox 및 IE9에서 백 오피스에 로그인하면 Chrome이 이상한 것으로 나타납니다. IE9와 Firefox는 동일한 방식으로 반응합니다. 기발한 나를 위해 크롬은 이 아니고이 작동했습니다.

내가 umbraco에 로그인 한 후 각 인스턴스의 URL과 다른 탭을 발사했다

:

< .. 도메인 ..>/canvas.aspx REDIR =/페이지 이름/

(내 사이트 umbracoUseDirectoryUrls 키를 true로 설정하여 .aspx 형식이 후행 슬래시로 대체되도록하십시오.

내 대답은 canvas.aspx가 신뢰할 수 없기 때문에 canvas.aspx를 신뢰하기보다는 관리자를 표준/umbraco/back office에 로깅합니다.

+0

내가 그 일을 끝내 었으며 올바른 답변으로 표시되었습니다. – Sindre

관련 문제