0

내 질문을 잘 표현하지 못했던 것 같습니다. 보완 제목으로 추가하고 있습니다. 구성 파일에서 기본 동작을 재정의 할 수 있도록 FormsAuthentication 클래스를 확장하려면 어떻게해야합니까? 예를 들어, 실행 제어를 새 페이지 요청에서 MembershipUser의 LastActivity를 업데이트하기위한 MembershipProvider), 실패한 경우 FormsAuthentication 클래스의 메커니즘을 내 자신의 사용자 지정 클래스로 바꾸고 FormsAuthentication 클래스를 사용하므로 일반적으로 사용합니까?ASP.NET Forms 인증 불만 : 맞춤 멤버쉽 공급자를 연결하는 방법은 무엇입니까?

사용자 지정 MembershipProvider에 통합 할 수 있도록 덜 경직되고 확장 가능한 FormsAuthentication 프레임 워크를 어떻게 구현합니까? 이것에 대한 연구가 있었습니까? 궁극적으로,이 같은 내 Web.config의 뭔가에 넣어 싶습니다 : 이것은 내 모든 시간을 복용해서는 안

<authentication mode="Forms"> 
    <forms membershipProvider="MyCustomMembershipProvider"> 
     <events> 
      <add event="AuthenticatedRequest" action="OnAuthRequest" /> 
      <add event="UnAuthenticatedRequest" action="OnRequest" /> 
      <add event="UnAuthorizedRequest" action="UnAuthRequest" /> 
     </events> 
    </forms> 
</authentication> 

. 폼 인증은 ASP.NET 페이지 라이프 사이클에서 꽤 낮은 수준 인 것처럼 보이지만이를 완전히 피할 수있는 방법이 있어야합니다.

이것은 사용자 지정 멤버 자격 공급자와 관련이 없습니다. 나는 묵시적인 "IsOnline"및 "LastActivity"기능과 같이 멤버 자격 공급자 클래스에서 구현하려고하지만 FormsAuthentication은 쿠키를 설정하고 되돌아 보지 않습니다. 그 쿠키를 검사 할 때 내 코드를 삽입하고 싶지만 그럴 수는 없습니다. 내 쿠키를 맨 위에 쌓는 것 이외의 방법이 있어야합니다.

+0

가능한 중복 http://stackoverflow.com/questions/5701673/custom-membershipprovider :

이 문서에서는 당신이 찾고있는 수 있습니다 무엇을 -in-net-4-0) – jrummell

+0

이는 사용자 지정 멤버 자격 공급자에 초점을 맞 춥니 다. 나의 좌절은 FormsAuthentication에 있습니다. 내 질문에 더 많은 정보를 추가하겠습니다. –

+0

당신이 원하는 것이 분명하지 않습니다. 당신은 당신의 제목과 당신의 메시지 속의 맞춤식 멤버쉽 공급자에 대해 말한 다음, 당신이 말한 것이 아니라고 말합니다. 당신이 원하는 것을 정확히 분명히해야합니다. –

답변

1

아니요, 그렇게 작동하지 않습니다. 멤버 자격 공급자는 인증 된 요청이나 인증되지 않은 요청을 가져 오지 않습니다. 사실 인증과는 거의 관련이 없습니다. 보안 프레임 워크가 처리합니다. 회원 자격은 누군가의 사용자 이름과 비밀번호를 확인하는 수단으로 만 사용됩니다. 그게 전부 야. Membership은 보안 프레임 워크가 사용자를 인증하는 데 사용하는 데이터 저장소라고 생각할 수 있지만 인증 자체는 관리하지 않습니다.

http://www.asp.net/security/tutorials/forms-authentication-configuration-and-advanced-topics-cs

([.NET 4.0 사용자는 MembershipProvider]의
+0

나는 그것이 이렇게 작동하지 않는다는 것을 안다; 이것은 나의 좌절의 일부입니다. 우리는 이런 식으로 작동 할 수 있어야합니다. 'FormsAuthentication.Authenticate()'와'MembershipProvider.ValidateUser()'는 궁극적으로 관계가 있지만 실제로는 그렇지 않습니다. 내 문제는이 두 메커니즘이 인증시에 서로 자주 접촉하고 서로 인정하지 않는다는 것입니다. 이들은 본질적으로 관련된 보안 구조입니다. 그들은 의사 소통을 할 수 있어야합니다. –

+0

@ JeremyHolovacs - 이것이 얼마나 저조한가에 대한 애도의 의미가 없습니다. 그것은 그것이 설계된 방식이며, 사용하지 않는 것 이외에는 할 수있는 것이별로 없습니다. 그냥 받아들이고, 그것을 사용하거나 다른 작업을 계속하십시오. –

+0

진심이야? 이 사이트의 요점은 일을하는 더 좋은 방법을 찾고, 새로운 가능성을 모색하고, 해결책으로 인한 좌절을 해결하는 것입니다. 당신의 철학은 여전히 ​​우리를 어딘가에있는 동굴에있는 바위에 두드리면됩니다. 답변을 모르는 경우에는 문제가 없지만 이전에는 심각하게 고려되지 않았으므로 종료하지 마십시오. 해결책이 있습니다. 거기에 있어야합니다. –

1

업데이트를 기반으로 SqlMembershipProvider에서 상속받은 linked question에서 설명한대로 사용자 지정 멤버 자격 공급자를 만들고 변경하려는 기능을 무시할 수 있습니다.

Forms Authentication은 단순히 쿠키를 생성한다는 점에서 정확합니다. 사용자가 로그인했는지 여부를 응용 프로그램이 결정할 수 있도록 도와줍니다. Membership 부분은 IsOnline 및 LastActivity 및 기타 사용자 정보를 알려줍니다.

재정의하려는 회원 기능을 알려 주시면 아직 자세히 설명하지 않으므로 도움을 드릴 수 있습니다.

+0

회원 자격 기능을 무시하고 싶지 않습니다. 내 ASP.NET 페이지에서 클라이언트 요청의 쿠키 유효성을 검사 할 때 멤버 자격 공급자의 메서드를 호출하여 공급자 데이터 저장소의 마지막 활동을 업데이트 할 수 있도록 FormsAuthentication 시스템을 재정의하려고합니다. –

+0

회원 자격없이 기능적으로 회원을 원합니다. 회원 정보를 읽었습니까? 당신이하려고하는 일을 시도하고 진실 된 방법입니다. – jrummell

+1

@JeremyHolovacs - 기본 .NET 공급자는 사용자의 유효성을 검사 할 때 마지막 활동 필드를 이미 업데이트합니다 (이 필드를 업데이트할지 여부를 알려주는 플래그가 있음). 이것이 왜 당신에게 효과가 있는지 이해가 안됩니다. –

관련 문제