2010-05-27 1 views
1

Я создал пользовательский поставщик членства для приложений asp.net mvc, и все работает отлично, за исключением одной вещи:
при входе в мое приложение, я также зарегистрирован для всех других приложений asp.net mvc, которые я запускаю с помощью Visual Studio. Я полагаю, что эти данные извлекаются из кеша, потому что когда я выхожу из системы и пытаюсь снова войти в другое приложение, я отклоняюсь.asp.net mvc пользовательский членский провайдер - строгий логин входа в одно приложение

В WebConfig, я добавил 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

Возможно, вам немного поздно, но, возможно, другие люди, достигшие этой страницы, могут оказаться полезными.

По умолчанию при аутентификации форм используется куки-файл браузера для сохранения состояния проверки подлинности, и они ограничены (и ограничены) уровнем домена (sub) (возможно, http://localhost/ в вашем случае?).

Это означает, что каждое приложение, работающее под корнем домена «localhost» (http://localhost/App1, http://localhost/App2), имеет доступ к тем же файлам cookie для проверки подлинности.

вы могли бы быть в состоянии обойти эту проблему, указав другое имя куки для каждого приложения в web.config:

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

Надежда это помогает ...

+0

Эй Zidad, я только что видел ваш ответ, и теперь все гораздо яснее. Спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^