2013-07-31 2 views
2

사이트 내 제한된 페이지에 액세스하기위한 익스트라 넷 사용자를위한 프론트 엔드 로그인 페이지가있는 사이트 설정이 있습니다.null을 반환하는 사이트 코어 사용자 도메인 및 역할

엑스트라 넷 사용자는 현재 지속성 플래그 동일 진짜야

global::Sitecore.Security.Domains.Domain domain = global::Sitecore.Context.Domain; 
var isLogginedIn = AuthenticationManager.Login(domain + @"\" + email, password, true); 

이 성공적으로 작동으로 기록되고 있으며, 상황이 올바르게 설정되어 있습니다.

다음은 동일한 요청 내에서 로그인 한 후 직접 실행 창에서 출력됩니다.

global::Sitecore.Context.User.Domain 
extranet 

global::Sitecore.Context.User.Roles.Count() 
1 

global::Sitecore.Context.User.IsAuthenticated() 
true 

사용자가 로그인하면 사용자가 액세스하려는 페이지로 리디렉션됩니다.

다음은 출력 형태는

global::Sitecore.Context.User.Domain 
null 

global::Sitecore.Context.User.Roles.Count() 
0 

global::Sitecore.Context.User.IsAuthenticated() 
true 

누구든지 내가 후속 요청에 대한 몇 가지 상황에 맞는 항목을 잃을 수도 왜 어떤 아이디어가 이후의 요청에 대해 직접 실행 창입니까? 당신이 Sitecore에 대한 자신의 로그인 페이지를 만들려고처럼 보이는 사전

답변

0

감사합니다. 이 경우 AuthenticationManager.Login 메소드를 호출 logginging 파이프 라인 대신를 시작하려고 할 수 있습니다

var loggingInArgs = new LoggingInArgs 
{ 
    Username = userName, 
    Password = password, 
    StartUrl = startUrl 
}; 

Pipeline.Start("loggingin", loggingInArgs); 
bool isLogginedIn = loggingInArgs.Success; 
+0

빠른 응답을 보내 주셔서 감사합니다. 그러나 해당 방법으로 로그인 할 수 없습니다. 다음 메시지가 나타납니다. '시스템에 액세스 할 수 없습니다. 틀린 것으로 생각되면 시스템 관리자에게 문의하십시오. \ n \ n 로그인 시도가 실패했습니다. 다시 시도하십시오. \ n \ n 시스템에 액세스 할 수 없습니다. 이것이 잘못되었다고 생각되면 시스템 관리자에게 문의하십시오. \ n \ n ' 로그 인 파이프 라인은 백엔드 액세스에만 해당됩니다. 엑스트라 넷 도메인의 웹 사이트 사용자를위한 로그인 페이지입니다. – Grazerbeam

0

이 적절한 해결책이 아니라이 문제를 숨길 패치의 더하지만 난 그게 트리거 단지의 경우 사람을 게시 할 예정입니다 다른 누구나 이것에 대해 더 이상 생각할 필요가 없습니다. 이 사용자가 올바르게 설정 도메인과 역할을 가지고 호출 된 후

나는 사용자 지정 파이프 라인 중

if (user.Domain == null && user.IsAuthenticated) 
{ 
    var domainUser = string.Format(@"extranet\{0}", user.LocalName); 
    var membershipUser = Membership.GetUser(domainUser); 

    if (membershipUser != null) 
    { 
     AuthenticationManager.Login(domainUser, membershipUser.GetPassword(), true); 
    } 
} 

다음 코드를 호출하고 있습니다. 이상하게도이 이후의 다른 모든 요청에는 올바르게 설정된 사용자가 있습니다.

0

도메인이 null이고 역할이 비어있는 정확한 문제가 발생했습니다. 원인은 asp : 로그인 컨트롤을 사용하여 사용자를 로그인하는 것이 었습니다. 이것을 표준 텍스트, 암호 및 단추 컨트롤로 바꿨을 때 문제가 사라졌습니다.