2011-09-06 2 views
1

공개 WebMethod를 통해 현재 사용자의 인증 상태를 확인할 수 있습니까? 이이 방법에 전달 아무것도 없습니다와 Context.User는 "익명"이며,이 시점에서 기술적으로 인증되지 않은 때문에WebMethod를 통해 현재 사용자의 인증 상태를 확인하는 방법

는 응답도 인증을 위해, 항상 false입니다
[WebMethod] 
public bool IsAuthenticated() 
{ 
    return Context.User.Identity.IsAuthenticated; 
} 

: 여기에 지금까지있어 무엇 사용자.

내 다음 생각은 사용자의 UserProviderKey (GUID)를 전달하고이를 사용하여 유효성을 검사 할 일반 원칙을 생성하는 것입니다. 가능한 경우 또는 GUID 자체가 다른 사용자의 인증 상태를 검색하지 못하도록 충분한 보안을 제공하는지는 확실하지 않습니다.

답변

2

웹 요청과 함께 인증 쿠키를 전달해야합니다. 이것은 .NET이 사용자를 인증했는지 여부를 아는 방식입니다 (표준 인증을 사용한다고 가정).

인증 쿠키는 세션 쿠키와 아무 관련이 없습니다. 은 매우 안전하지 않습니다..

2

webmethod가 인증 쿠키를 읽을 수없는 것으로 보입니다.

은 쿠키 기반 세션을 가정

[WebMethod(EnableSession = true)] 

는이 웹 메소드가 쿠키를 읽을 수보십시오.

+1

나는 이것을 시도했지만 여전히 쿠키 기반 세션 상태를 사용하고 있어도 false를 반환합니다. 그러나 세션에 액세스하여이를 사용하여 작업 솔루션을 찾을 수있었습니다. 많은 감사합니다! –