2011-05-10 2 views
0

배경 :
레거시 ASP.NET 3.5 Web Forms 응용 프로그램을 만들고 있습니다. 이 응용 프로그램은 사용자가 생성 된 '화이트 라벨'웹 사이트에 대한 가입을 구매할 수있게 해주 며, 사용자가 추가로 사용자 정의 할 수 있습니다. 폼 인증을 사용합니다..NET Web Forms 하나의 계정으로 여러 제품을 구독 할 수 있습니까?

일반적인 사용 사례는 사용자가 Google 시스템에 계정을 생성하고 웹 사이트를 구매 한 다음 웹 사이트를 사용자 정의하는 것입니다. 구입 한 웹 사이트를 수정하는 데 사용할 URL은 https://www.example.com/EditWebsite.aspx입니다. 웹 사이트 편집 툴박스에는 다른 URL이있는 많은 페이지가 있습니다.

문제 :
우리 팀은 이제 사람들이 여러 웹 사이트 구독에 액세스하기 위해 하나 개의 계정을 사용할 수 있도록하는 임무되었습니다. 즉, 인증 된 한 명의 사용자가 위에서 언급 한 URL을 사용하는 경우 편집을 위해 많은 웹 사이트 중 하나에 액세스하려고 시도 할 수 있습니다. Google 시스템은 사용자 당 여러 subscriptionID를 인식 할 수 있지만 웹 사이트 편집기 웹 앱은 하나의 구독 만 지원합니다.

좀 더 간단한 예를 들어 설명하면 : Google이 갑자기 한 개의 Gmail 계정으로 두 개의 다른받은 편지함을 볼 수있게 된 것 같습니다. 두 URL이 동일하면 어떤 시스템에 액세스하려고했는지 시스템에서 어떻게 알 수 있습니까?

원래 응용 프로그램을 https://www.example.com/[subID]/EditWebsite.aspx과 같은 URL을 사용하도록 변경하여 사용자를 올바른 웹 사이트로 보내는 데 필요한 모든 정보를 제공했습니다. 우리는 이것을 달성하기 위해 URL Routing을 들여다 보았지만 올바른 URL을 생성하기 위해 라우트 구성을 사용하기 위해 모든 웹 응용 프로그램의 내부 링크를 변경해야 할 것 같습니다. 어쩌면 우리는 여기에 잘못된 생각을 가지고 있을지 모르겠지만 레거시 응용 프로그램에 대해서는 너무 많은 작업처럼 보입니다.

우리가 생각해 낸 또 다른 잠재적 인 해결책은 간단하게 우리 시스템의 제어판 웹 앱 (웹 사이트를 편집하는 링크를 클릭하는 곳)을 사용하여 편집 웹 사이트 웹 앱이 읽을 수있는 세션 쿠키를 설정하여 어떤 웹 사이트 제기하기. 이것은 페이지가 북마크가 가능하지 않으며 동일한 브라우저의 다른 탭에서 여러 웹 사이트를 동시에 볼 수 없다는 단점이 있습니다.

질문 (들) :
는 다른 어떤 우리가 조사되지 않은 옵션이나 생각이 있습니까? 이런 종류의 행동을 허용하는 다른 웹 사이트가 있습니까? 어떻게 처리합니까? URL 라우팅이 올바른 방법인가요? 그냥 뛰어 들여야합니까?

모든 의견을 환영합니다.

+0

흠,이 질문에 대한 활동이 없기 때문에 다른 사람들도 우리가이 문제에있는 것처럼 저돌적이라고 생각합니다. :( –

답변

0

우리가 사용하는 솔루션은 URL 매개 변수를 링크에 추가하여 편집하려는 웹 사이트를 지정하는 것입니다.

https://www.example.com/EditWebsite.aspx?subID=123 

이 매개 변수는 모든 사용자의 웹 사이트를 나열하는 페이지에서 '웹 사이트 편집'링크에 포함됩니다.

이 값이 있으면 사용자에게 세션 쿠키를 설정합니다. 요청 매개 변수가없는 경우 앱은 설정된 쿠키를 찾습니다. 이것은 응용 프로그램 내의 모든 내부 링크를 처리합니다. 쿠키가없고 요청 매개 변수가 설정되지 않은 경우 인증 된 사용자의 첫 번째 구독을 목록에서 선택합니다.

이것은 완벽하지는 않지만 지금까지 문제없이 작동했습니다.이로 인해 사용자는 동일한 브라우저 세션에서 여러 웹 사이트를 수정할 수 없습니다. 여러 탭 사용. 이것은 아직 지원 문제를 초래하지는 않았지만 거의 문제가되지 않습니다.

관련 문제