2014-12-19 3 views
0

나는 인증 문제를 해결하는 방법에 대해 생각하고 있습니다.asp.net MVC 양식 인증 맞춤

고객 입력 용으로 사용되는 관리 영역이있는 MVC 사이트가 있고 관리 영역을 보호하기위한 양식 인증이 매우 쉽지만 다른 사용자가 다른 사용자를 편집 할 수 있다는 문제점이 있습니다. 물건과 그게 전부는 내가 원하지 않는 것을 = (.

내 이전 사이트는 하나 개의 사이트에 대한 인증을 처리하고있는 FormsAuthentication 내 모든 문제를 처리하지만,이 사이트는 X 사용자와 X 고객에 대한 인증을 처리 할 수 ​​있어야합니다.

들어 예를 들어 user1은 user1 관리 영역 (mysite/customer1)에 로그인하지만 로그인하면 mysite/customer2에 대한 URL이 변경되고 여기에서 항목을 편집하기 시작합니다.

한 가지 해결책은 global.asax와 FormsAuthentication_OnAuthenticate에 있으며 URL을 확인하지만이 방법에 대한 더 나은 접근 방법이 있어야합니까? 어쩌면 여기에 뭔가 분명한 사실을 놓치고 있을까요?

답변

0

일단 사용자가 로그인하면 (user1) 사용자 ID (또는 일부 고유 식별자)를 클레임이나 세션에 저장하면 어떻습니까? 그런 다음 한 페이지를 만들어 mysite/고객이이 ID를 읽고 그 사람의 기록을 다시 가져옵니다. 그래서이 방법은 그들이 볼 수있는 유일한 기록은 자신의 ID와 관련된 하나이며 다른 사용자를 위해 동일한 페이지를 반복해서 작성할 필요가 없으므로 no mysite/customer1, mysite/customer2, mysite/customer3 ...

+0

내 의견으로는 이것이 최선의 선택입니다. 요청에 따라 항상 로그인 한 사용자의 ID를 볼 수 있습니다. 다른 옵션은 사용자 지정 인증 특성을 만드는 것이지만 나는 그런 식으로하지 않습니다. – jbojcic

+0

이런 종류의 솔루션을 피하려고합니다. "한 가지 해결책은 global.asax와 FormsAuthentication_OnAuthenticate에 있으며 URL을 확인하는 것이 더 나은 접근 방법입니다. 어쩌면 여기에 뭔가 분명한 사실을 놓치고 있습니까?" 그래도 그다지 분명한 것은 없지만이 문제에 대한 더 나은 architectureurall 솔루션이 될 것이라고 생각했습니다. – NetProvoke