2010-05-27 3 views
1

asp.net mvc 응용 프로그램에 대한 사용자 지정 멤버 자격 공급자를 만들었습니다. 응용 프로그램에 로그인하면
을 제외한 모든 항목이 정상적으로 작동합니다. Visual Studio를 사용하여 실행하는 다른 모든 asp.net mvc 응용 프로그램에 설치합니다. 나는 로그 아웃하고 다른 응용 프로그램에서 다시 로그인하려고 할 때이 데이터가 캐시에서 가져온 것으로 가정합니다. webconfig에서asp.net mvc mvc custom membership provider - 하나의 응용 프로그램에 엄격한 로그인 캐시

, 나는이 문제를 해결하기 위해 applicationName을 추가했지만 작동하지 않았다 :

<membership defaultProvider="SAMembershipProvider" userIsOnlineTimeWindow="15"> 
     <providers> 
     <clear/> 
     <add 
      name="SAMembershipProvider" 
      type="ShinyAnt.Membership.SAMembershipProvider, ShinyAnt" 
      connectionStringName ="ShinyAntConnectionString" 
      applicationName="MyApp" 
      /> 
     </providers> 
    </membership> 

    <roleManager defaultProvider="SARoleProvider" enabled="true" cacheRolesInCookie="true"> 
     <providers> 
     <clear/> 
     <add 
      name="SARoleProvider" 
      type="ShinyAnt.Membership.SARoleProvider" 
      connectionStringName ="ShinyAntConnectionString" 
      applicationName="MyApp" 
      /> 
     </providers> 
    </roleManager> 

내가 그이 문제를 다루고 구현하는 것을 잊었다 어떤 방법이 있습니까 아니면 뭔가 다른?

답변

2

아마도 조금 늦은 것 같지만이 페이지에 도달하는 다른 사람들이 유용하다고 생각할 수 있습니다.

기본적으로 양식 인증은 브라우저 쿠키를 사용하여 인증 상태를 저장하며 범위가 (하위) 도메인 수준 (아마도 귀하의 경우 http://localhost/?)으로 범위가 지정됩니다.

즉, 'localhost'도메인 루트 (http://localhost/App1, http://localhost/App2)로 실행되는 모든 응용 프로그램은 동일한 인증 쿠키에 액세스 할 수 있습니다.

당신의 Web.config에서 응용 프로그램마다 다른 쿠키 이름을 지정하면이 문제를 해결할 수 있습니다이 도움이

<authentication mode="Forms"> 
    <forms name="[cookie name]"></forms> 
</authentication> 

희망 ...

는 Zidad 이봐, 난 방금 본
+0

당신의 대답과 일은 훨씬 더 분명합니다. 고맙습니다! –

관련 문제