2017-11-03 1 views
0

내 ASP.Net MVC 응용 프로그램 (.net 4.5)에는 3 개의 테이블 (SQL Server)이 있습니다. 목록 (키 LID), 세부 정보 (외래 키 LID), 위치 (외래 키 LID).승인 시스템 승인을 위해

등록 된 사용자는 데이터베이스에 목록을 입력 할 수 있습니다. 라이브가되기 전에 데이터를 검토 할 수있는 몇 가지 기능이 필요합니다 ... 어떻게이 작업을 수행합니까?

사용자가 데이터를 제출하면 곧 게시해서는 안되지만 관리자가 승인 한 후에 사이트에 표시 될 때까지 기다려야합니다.

+0

Listing 12에 bool을 승인 된 것으로 추가하고 생성시 false로 기본값을 추가합니다. 그런 다음 관리자가 들어가서 최근에 생성 된 모든 목록을 여전히 거짓으로 표시 할 수 있습니다. 승인되면 해당 레코드의 승인 된 컬럼을 true로 갱신합니다. – tokyo0709

답변

0

목록 모델에 상태 필드를 추가해야합니다. 목록이 입력되면 '승인되지 않음'과 같은 상태로 표시됩니다. 관리자가 검토하면 승인 된 것으로 표시됩니다. 사용자 인터페이스에서 상태 == 승인 된 목록 만 표시합니다.

사용자 관리 및 역할이 이미 정의되어있어 사용자가 비 관리자 및 관리 역할로 정의 될 수 있다고 가정합니다.

+0

나는 똑같은 생각을했지만 문제가있는 데이터베이스 엔트리가 없다면 전체 메인 db 테이블에 영향을 미치지 않을 것이다 ?? @Chris –

0

[IsApproved]라는 비트 열을 사용할 수 있습니다 (True | False). 그런 다음 해당 플래그를 모델에 반영 할 수 있으므로 데이터를로드 할 때 아직 승인되지 않은 결과를 제외 할 수 있습니다.

당신은 어느 쪽 MVC 페이지를 통해하거나 True로 데이터베이스에 플래그를 변경하여, 관리자의 승인의 형태를 필요 했어 자신

당신이 (방법이 DB를 쿼리에 따라) 모델을로드 할 때, 승인 된 결과를보기로 되돌리려면 myTable.Where(x => x.IsApproved).ToList()을 요청하면됩니다.

+0

네,하지만 (누가 무작위로 접근 할 것인가) 내 주 데이터베이스에 들어갈 수있는 권한을 부여하지 않으면 보안상의 위협이 될 수 있습니까? @Joey –

+0

@MukeshMurugan MVC 애플리케이션에 액세스 할 수있는 사람을 제한하려면 구현할 인증 유형 (Windows, Forms, Digest 등 ...)에 대해 생각해 볼 필요가있는 경우, 애플리케이션을 데이터베이스와 혼동하지 마십시오. 사람들이 양식을 통해 새 항목을 추가하여 해당 정보를 데이터베이스에 유지하지만 (승인이 필요함) 기쁘면 인증이 필요하지 않습니다. MVC 뷰에서 [IsApproved] 특성을 숨기고 데이터베이스 전용 플래그로 사용할 수 있습니다. 데이터베이스 연결은 사용자가 볼 수없는 app.config에서 보안을 설정해야합니다. –

관련 문제