Относительный путь для файла cookie проверки подлинности с помощью форм - PullRequest
2 голосов
/ 31 марта 2011
<authentication mode="Forms">
  <forms name="ASPAuth" 
         path="/Admin" 
         timeout="20" 
         requireSSL="false" 
         slidingExpiration="true" />
</authentication>

В моей системе dev у меня есть вышеупомянутое в моем web.config.Это работает нормально, если я использую веб-сервер VS.Но когда я размещаю тот же веб-сайт на своем IIS7, используя виртуальный каталог, это не так.

VS Url выглядит так: http://localhost:xxxx/

URL-адрес IIS выглядит следующим образом: http://MachineName/MyApp/.

При доступе к сайту через IIS IsAuthenticated всегда ложно.Я понял, что это потому, что cookie присваивается http://MachineName/Admin/, а не http://MachineName/MyApp/Admin.

Как мне сделать так, чтобы «Admin» был относительным путем?Я пробовал путь = "~ / Admin", но это не работает.

Спасибо!

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Ответ:

На данном этапе это просто невозможно. У вас не может быть относительного пути с тильдой (~) в вашем web.config для пути аутентификации форм, если вы не хотите написать свой собственный HttpModule.

Смотрите этот пост (и комментарии): http://www.west -wind.com / Weblog / сообщения / 2008 / Jan / 20 / Forms-аутентификация-и-путь-в-форм-Tag

1 голос
/ 06 июня 2011

Попробуйте вставить преобразование в свой Web.Release.Config:

<authentication mode="Forms">
  <forms name="ASPAuth"
     path="/MyApp/Admin"
     timeout="20"
     requireSSL="false"
     slidingExpiration="true"
     xdt:Transform="Replace" 
     xdt:Locator="Match(key)"/>
</authentication>
...