2010-02-05 5 views
0

저는 LoginView 컨트롤에 익숙하며,이를 사용하여 읽기 전용 버전을 만들고 한 페이지의 버전을 편집하는 방법을 알고 있습니다. 그러면 "독자"역할에 있거나 "편집자"역할 구성원 자격이 부여 된 경우에 따라 페이지가 다르게 표시됩니다. 좋은 작품!LoginView가 사용자 정의 로직에 사용되었습니다.

예를 들어 editor1이 양식을 열고 특정 데이터 개체를 업데이트하기 시작하면 ... 페이지를 통해 동일한 개체에 액세스하려고 시도한 다른 모든 편집자 역할 구성원이 읽기 전용 모드이고 editor1은 여전히 ​​열려 있습니다. 다른 편집자가 여는 다른 모든 객체는 편집 모드에서 열어야합니다.

그래서 어떤 개체를 표시하려고하는지에 따라 역할 구성원이 어지럽 힙니다.

누군가 어떻게 그런 식으로 행동하겠습니까?

감사합니다. Ralf

답변

1

한 번에 한 명의 사용자 만 레코드를 편집하도록하는 것은 그렇게 쉬운 일이 아닙니다.

  • 사용자가 레코드를 편집하는 데이터베이스에 로그인하십시오.
  • 이 상태를 자주 확인하려면 웹 서비스를 사용하십시오.

다른 사용자가 액세스 할 때 사용자가 즉시 잠기는 완벽한 방법이 있다고 생각하지 않습니다 ... 힘들 것입니다.

또는 충돌 해결 기능을 사용할 수도 있습니다. 충돌 해결 기능을 사용하면 원래 값을 비교하고 원래 값이 다른 사용자에 의해 변경되었는지 확인할 수 있습니다. 그랬다면 변경 사항을 병합하거나 사용자가 무엇을해야할지 등을 결정할 수 있습니다.

HTH.

+0

안녕하세요, 답변 해 주셔서 감사합니다. 내가 그렇게 명확하지 않은 것 같아, 나는 "항상"과 "변경"을 확인하는 것을 의미하지는 않습니다. 편집자 1이 자신이있는 객체의 마커를 설정하기 위해 양식을 열고 편집자 2가 마커를 찾아서 다른 역할로 옮겨서 "can '편집'기능. ASP.NET 페이지 생성 수명주기에서 페이지를 기다리는 사용자의 역할을 바꿀 수있는 위치는 어디입니까? Button_click에서 Page_Load, Page_PreInit까지 많이 시도했지만 ... 보안 변경에 늦은 것 같습니다. – Ralf

+0

개인적으로 보안을 사용하지 않을 것을 권장합니다. 이 작업을 수행하려면 MultiView를 사용하는 것이 좋습니다. activeviewindex 속성을 설정하여 프로그래밍 방식으로보기간에 전환하여 원하는 것을 할 수 있습니다. 역할 기반 보안을 사용하는 것보다 훨씬 쉽습니다. 또한 코드 숨김에서 모든 보안 검사를 수행하여 올바른 역할에 대해 편집 옵션 만 표시되도록 할 수 있습니다. 수표에 관해서는, 네, 기본적으로 당신은 플래그를 켜고 끄는 많은 업데이트를 할 것입니다. –

관련 문제