是否可以为AzMan XML商店指定相对连接字符串?
我当前的连接字符串是connectionString="msxml://c:/azman.xml"
,但我确实需要这样做,所以其他开发人员和自动构建可以获得最新的授权存储。
MS文档似乎表明connectionString="msxml://azman.xml"
应该有效,但会引发The request is not supported
错误。
答案 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