使用安全应用程序块时,与AzMan XML存储的相对连接字符串

时间:2009-02-05 02:05:16

标签: enterprise-library relative-path azman

是否可以为AzMan XML商店指定相对连接字符串?

我当前的连接字符串是connectionString="msxml://c:/azman.xml",但我确实需要这样做,所以其他开发人员和自动构建可以获得最新的授权存储。

MS文档似乎表明connectionString="msxml://azman.xml"应该有效,但会引发The request is not supported错误。

编辑:我意识到我通过企业库安全应用程序块使用AzMan的事实对于这个问题非常重要。

3 个答案:

答案 0 :(得分:6)

可以将令牌{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>

答案 1 :(得分:5)

添加〜将使其相对于应用程序

<add name="AuthorizationServices" connectionString="msxml://~/App_Data/AzMan.xml"/>

答案 2 :(得分:0)

如果您使用{currentPath},请确保在进行“AuthorizationFactory.GetAuthorizationProvider”调用之前正确设置了当前目录。我也在使用企业库安​​全应用程序块。 防爆。    My.Computer.FileSystem.CurrentDirectory = HttpContext.Current.Request.PhysicalApplicationPath