2010-01-21 2 views
1

기존 ASP.NET 응용 프로그램을 수정하고 있습니다. 사용자의 계정 데이터에 해당 선택 사항을 저장하는 "동의"버튼이있는 이용 약관 페이지를 추가했습니다. 사용자가 이용 약관에 동의하지 않은 경우 사용자가 페이지에 액세스하지 못하도록하고 싶습니다.사용자가 ASP.NET 사이트에서 이용 약관을 수락하는 방법

로그인 할 때 "수락 된 용어"값을 조회하고 세션에 저장하여이 작업을 수행하고자합니다. 그런 다음 모든 요청을 차단하고 해당 세션 값을 확인해야합니다. (사용자가 없으면 이용 약관 페이지로 리디렉션됩니다.)

PreRequestHandlerExecute 메소드가이 체크를 넣기에 적합한 장소입니까? 이 메서드는 스타일 시트 및 이미지 요청에 대해서도 호출되므로이 용도로 사용 된 것처럼 보이지 않습니다.

답변

0

PreRequestHandlerExecute는 내가 지금까지 찾은 가장 쉬운 핸들러입니다. 일반적으로 모든 요청 전에 Session 변수의 값을 평가해야 할 때 사용합니다. 이는 수행중인 것과 비슷합니다.

protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e) { 
    if (Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState) { 
    // Business Logic Here 
    } 
} 
+0

아, if 문에 감사드립니다. 도움이됩니다. –

1

제네릭 처리기이므로 모든 요청이 처리됩니다. 액세스를 제어하려는 페이지가 아닌 경우 종료되는 핸들러의 맨 위에 약간의 로직을 넣으십시오.

+0

정말요? 액세스 제어를 설정하는 것이 적절한 곳입니까? 우리는 거기에서 세션에 안정적으로 액세스 할 수 없음을 알았습니다.이 문제는 http://stackoverflow.com/questions/2111827 –

+0

Woah입니다. 나는 그것을 가로 지르지 않았다. 알아 둘만한. –

2

로그인 페이지를 이용하면 사용자는 (링크) 이용 약관에 동의한다는 면책 조항을 넣을 수 있습니다. (/ 링크) 한 곳에서 일 했었고, 법적인 문제가있었습니다. 나는 다른 곳을 많이 보았습니다.

+0

이제 이것이 최고의 솔루션입니다! –

2

회원 및 역할 공급자를 사용하고 있습니까? T & Cs를 수락하고 web.config 또는 다른 방법을 통해 해당 역할에 대한 액세스를 제한 한 사용자의 역할을 정의 할 수 있습니다. 이 접근법의 또 다른 장점은 T & Cs가 변경되면 사용자가 추가 역할을 정의 할 수 있으며 사용자가 새 T & Cs를 쉽게 받아 들일 수 있도록합니다.

+0

이것은 아주 간단합니다. 유일한 문제는 단순히 사용자를 이용 약관으로 리디렉션하는 것이 아니라 오히려 못생긴 권한 오류가 발생한다는 것입니다. –

+0

@ 제레미 : 왜? 로그인 할 때 역할에 있는지 확인하고 그렇지 않은 경우 T & C 페이지로 리디렉션 할 수 있습니다. 사용자가 방문 페이지 대신 로그인 한 후 요청한 페이지로 리디렉션되는 경우에만 문제가되는 것을 볼 수 있습니다. 그렇더라도 403 페이지에서 역할을 확인하고 유용한 오류 메시지를 제공 할 수 있습니다. –

+0

사실, 정상적으로 발생하면 안됩니다. 그리고 우리의 경우에는 403 페이지를 변경할 수 없습니다. –

1

필자는 비슷한 요구 사항을 가지고 있으며 기본 클래스에 내 유효성 검사 로직을 넣고이 유효성 검사가 필요한 모든 양식을 기본 클래스를 상속 받도록했습니다.

그런 식으로 유효성 검사는 내가 원하는 양식에서만 실행됩니다. 정적 콘텐츠 요청 등과 같은 문제는 없습니다 ...

관련 문제