2009-05-04 4 views
0

작은 인트라넷을 만들려고합니다. 이를 위해 내 로컬 PC에 웹 서버가 있습니다. 이 웹 사이트의 루트는 대시 보드이며 로그인/등록 기능 (기본 ASP.NET 멤버쉽)을 포함합니다.ASP.NET : 웹 응용 프로그램간에 리소스 (멤버십, 라이브러리)를 공유하는 방법

 
http://localhost/ApplicationName 

루트 웹 사이트 및 하위 응용 프로그램의 대부분은 내가 될 것이다하는 사용자의 인증이 필요한 것 :

 
http://localhost 
http://localhost/Account 

인트라넷의 나머지는 같은 하위 응용 프로그램으로 구성됩니다 기본 ASP.NET 멤버 자격 공급자를 사용합니다.

모든 프로젝트 (루트 및 서브) 비주얼 스튜디오, 에 별도의 프로젝트이며, 모든 프로젝트는 배포를 위해 자신의 WebSetup 프로젝트입니다 있습니다.

1) 어떻게 ASP.NET 회원이 하위 응용 프로그램에서 사용할 수 있습니까?

또한 대부분의 응용 프로그램 (루트 및 하위)은 타사 라이브러리 (데이터 프레임 워크)를 사용하게됩니다.

2.) 루트 프로젝트에서 라이브러리를 참조하고 하위 응용 프로그램에서 참조 된 라이브러리를 '사용'할 수 있습니까?

주셔서 감사합니다.

답변

2

여러 웹 프로젝트에서 사용할 수있는 클래스 라이브러리 프로젝트에서 공통 코드를 만듭니다. 회원 공급자에 관해서는, 회원 데이터를 외부 SQL 인스턴스 (동일한 서버에있을 수 있음)에 저장 한 다음 각 프로젝트에서 동일한 연결 문자열을 사용하기 만하면됩니다.

+0

당신이 말하는 일반적인 코드는 타사 라이브러리입니다. 이 라이브러리는 내가 배치 한 모든 프로젝트의/bin/폴더에 포함 된 여러 개의 dll 파일로 구성됩니다. 루트 프로젝트의/bin 폴더에만 배포하고 싶습니다. 하위 프로젝트는 이러한 파일을 참조해야합니다. 이것이 가능한가? – Ropstah

+0

어셈블리를 GAC (글로벌 어셈블리 캐시)에 등록해야하는 것 같습니다. 회원 부분에 대한 대답이 최선의 해결책입니다. – Ropstah

+0

@ropstah - 내가 GAC에 라이브러리를 넣지 않아도되는 것을 피할 수있는 유일한 방법은이 라이브러리를 참조하고 프로젝트에 포함시키는 고유 한 계층을 갖는 것입니다.래퍼 라이브러리에 대한 참조는 외부 라이브러리에 대한 참조를 가져와야합니다. 나는 그 노력의 가치가 있는지 확신하지 못한다. – tvanfosson

1

Membership은 하나 이상의 응용 프로그램에서 작동하도록 설계되었습니다. 각 응용 프로그램을 수용 할 수있는 데이터베이스의 인스턴스 (응용 프로그램의 데이터베이스와 별도)를 보유 할 수 있습니다. 모든 응용 프로그램에서 동일한 회원 데이터를 사용하려면 defining Membership in each application's web.config 인 경우 동일한 applicationName (및 connectionString)을 제공하십시오.

질문의 두 번째 부분에 대해서는 tvanfosson의 답변 (의견과 함께)이 올바른 경로로 안내해야합니다.

편집 (@ ropstah Comment) : 아, 나는 그것을 설명하지 않았다. 이 경우 Single Sign-on (SSO)을 구현하고 싶을 것입니다. Masoud Tabatabaei는 과정을 통해 걸어 an article at ASPAlliance.com 게시했습니다. 또한 Keith Rull ~ this Stack Overflow question에 의해 제공된 대답도 도움이 될 수 있습니다.

+0

모든 프로젝트의 동일한 응용 프로그램에 web.config 항목의 applicationName을 설정해 보았습니다. 그러나 루트 프로젝트에 로그인 할 때 여전히 하위 프로젝트에 로그인해야합니다 (사용자/패스가 작동하지만 쿠키는 응용 프로그램간에 유지되지 않습니다). – Ropstah

+0

더 많은 점수를 주길 바란다 :-) 고맙습니다! – Ropstah

관련 문제