2012-03-07 2 views
1

응용 프로그램의 경우 프로필이있는 사용자가 있습니다. 이 응용 프로그램은 "초대장이 있어야 함"이며 다른 작업을 수행하기 전에 사용자가 프로파일을 채워야합니다.ASP.Net MVC 3, 모든 페이지를 한 동작으로 리디렉션하는 방법

프로필에 "불완전한"부울 속성이있어서 사용자가 비문을 끝내야하는지 여부는 알 수 없습니다.

하지만 사용자가 인증해야하는 모든 페이지에서 사용자를 완료해야한다는 것을 어떻게 확인할 수 있습니까?

사용자 정의 AuthorizeAttribute (실제로 이미 일부 역할을 확인하는 하나의 사용자 정의가 있음)를 만들려고 생각했지만이 컨트롤을 만들 수있는 적절한 위치인지 여부를 알지 못합니다. 어떻게 구분할 수 있습니까? 로그인이 유효하지 않거나 사용자가 정보를 전부 채우지 않았기 때문에 요청이 거부 된 경우 HandleUnauthorizedRequest에?

답변

1

당신은 수 중 하나

A)가 자신의 프로필을 입력하고 기본 인증 코드 핸들은 다음 세부 항목에서 '전체'역할에 추가 할 때까지 '제한'역할로 넣어 .

b) 컨트롤러에서 OnActionExecuting 메서드를 재정 의하여 (또는 사용하는 기본 컨트롤러에서 더 좋음) 나머지 동작을 처리하기 전에 사용자가 자신의 프로필에 입력했는지 확인하십시오.

+0

입니다. 나는 그것에 대해 생각했지만, 불완전한 프로필을 가지고있을 때 그것을 어떻게 관리 할 것인가, 내 프로필 페이지로 리디렉션 되었습니까? 그렇지 않으면 로그인 페이지로 리디렉션됩니까? B) 필터를 통해이 작업을 수행 할 수 있습니까? – J4N

+0

로그인 작업에서 적절한 역할을 수행하면 프로필 페이지로 리디렉션됩니다. 그들이 다른 것을 시도해보고 접근한다면 시스템을 우회하려고 시도한 자신의 잘못으로 로그인으로 돌아갑니다. – Paddy

0

IF 당신이 의미하는 바를 이해했으면 간단하게 표준 인증 방법을 사용하십시오. 그룹 및 역할을 사용할 수 있으므로 사용자가 인증 되더라도 일부 페이지에서 제외 될 수 있음을 잊지 마십시오.

+0

Paddy와 동일한 응답 : "불완전한 프로필 일 때 내 프로필 페이지로 리디렉션됩니다. 그렇지 않으면 로그인 페이지로 리디렉션됩니까?" – J4N

+0

MSDN에서 : 프레임 워크가 HTTP 401 오류 상태를 반환합니다 (역할 공급자의 기본 로그인 페이지로 리디렉션됩니다). 사용자 정의 페이지에서 오류 (적절한 위치로 리디렉션)를 사용하거나 컨트롤러의 기본 클래스에서 OnAuthorize()를 재정의 할 수 있습니다 (점검해야 할 사항을 모두 확인하고 프로필 페이지로 리디렉션되지 않았는지 확인). 귀하의 A)는 –

관련 문제