Строка относительного подключения к хранилищу XML AzMan при использовании блока приложения безопасности - PullRequest
5 голосов
/ 05 февраля 2009

Можно ли указать относительную строку подключения для хранилища XML AzMan?

Моя текущая строка подключения connectionString="msxml://c:/azman.xml", но мне действительно нужно сделать это относительным, чтобы другие разработчики и автоматизированные сборки могли получить последнее хранилище авторизации.

Документация MS, похоже, предполагает, что connectionString="msxml://azman.xml" должен работать, но это выдает ошибку The request is not supported.

РЕДАКТИРОВАТЬ: я понял, что тот факт, что я использую AzMan через блок приложения безопасности библиотеки предприятия, имеет важное значение для вопроса.

Ответы [ 3 ]

6 голосов
/ 05 февраля 2009

Можно ввести токен {currentPath} в строку подключения, используемую блоком приложения безопасности.

Это дало мне поведение, после которого я был, позволив доступ к файлу AzMan.xml из папки приложения.

Используемая строка подключения:

<authorizationProviders>
  <add storeLocation="msxml://{currentPath}/azman.xml"
    application="My_Application" scope="" auditIdentifierPrefix="AzMan Authorization Provider"
    type="Microsoft.Practices.EnterpriseLibrary.Security.AzMan.AzManAuthorizationProvider, Microsoft.Practices.EnterpriseLibrary.Security.AzMan, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    name="AzMan Provider" />
</authorizationProviders>
5 голосов
/ 05 февраля 2009

Добавление ~ сделает его относительно приложения

<add name="AuthorizationServices" connectionString="msxml://~/App_Data/AzMan.xml"/>
0 голосов
/ 11 марта 2010

Если вы используете {currentPath}, убедитесь, что ваш текущий каталог правильно настроен, прежде чем выполнять вызов AuthorizationFactory.GetAuthorizationProvider. Я также использую блок приложения Enterprise Library Security. Ex. My.Computer.FileSystem.CurrentDirectory = HttpContext.Current.Request.PhysicalApplicationPath

...