2009-02-05 9 views
5

Có thể chỉ định chuỗi kết nối tương đối cho một cửa hàng XML AzMan không?Chuỗi kết nối tương đối với cửa hàng XML AzMan khi sử dụng khối ứng dụng bảo mật

Chuỗi kết nối hiện tại của tôi là connectionString="msxml://c:/azman.xml" nhưng tôi thực sự cần phải làm cho người thân đó để các nhà phát triển khác và xây dựng tự động có thể nhận được cửa hàng ủy quyền mới nhất.

Tài liệu MS có vẻ gợi ý rằng connectionString="msxml://azman.xml" sẽ hoạt động nhưng điều đó sẽ gây ra lỗi The request is not supported.

EDIT: Tôi nhận ra rằng thực tế tôi đang sử dụng AzMan thông qua Chặn ứng dụng bảo mật thư viện doanh nghiệp là quan trọng đối với câu hỏi.

Trả lời

6

Có thể nhập mã thông báo {currentPath} vào chuỗi kết nối được sử dụng bởi các khối ứng dụng bảo mật.

Điều này đã cho tôi hành vi sau, cho phép tệp AzMan.xml được truy cập từ bằng thư mục ứng dụng.

Chuỗi kết nối Tôi đang sử dụng là:

<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> 
+0

Khi tôi sử dụng kỹ thuật này, trong một ứng dụng web, currentPath đang được đánh giá là "c: \ windows \ system32 \ inetsrv" thay vì ứng dụng danh mục. Làm thế nào để tôi có được nó để ánh xạ tới thư mục ứng dụng? –

+2

Sử dụng {baseDirectory} làm việc cho tôi, cho phép tệp được tìm thấy trong thư mục ứng dụng web. –

5

Thêm ~ sẽ làm cho nó liên quan đến việc áp dụng

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

Nếu bạn sử dụng {currentPath}, hãy chắc chắn thư mục hiện tại của bạn được thiết lập đúng cách trước khi bạn thực hiện các "AuthorizationFactory.GetAuthorizationProvider" gọi. Tôi cũng đang sử dụng Khối ứng dụng bảo mật thư viện doanh nghiệp. Ví dụ: My.Computer.FileSystem.CurrentDirectory = HttpContext.Current.Request.PhysicalApplicationPath