2012-01-11 62 views
5

Có ai có thể giúp chỉ cho tôi đúng hướng tôi có thể khắc phục lỗi này không?System.Security.SecurityException: Yêu cầu quyền chính không thành công

System.Web.Services.Protocols.SoapException: Server was unable to process request. 
    ---> System.Security.SecurityException: Request for principal permission failed. 
at System.Security.Permissions.PrincipalPermission.ThrowSecurityException() 
at System.Security.Permissions.PrincipalPermission.Demand() 
at System.Security.PermissionSet.DemandNonCAS() 
at LiveDocx.MailMerge.SetLocalTemplate(String template, String format) 

Tôi đã cài đặt phần mềm này mà công ty của tôi đã mua từ LiveDocx. Vì vậy, tôi không có khả năng sửa đổi mã hoặc thậm chí đọc mã. Tôi đã cài đặt mọi thứ theo tài liệu của họ và trang web được xác nhận để hoạt động. Tôi chỉ có thể thay đổi cài đặt trong IIS, quyền truy cập thư mục và Web.config. Máy chủ của chúng tôi, phần mềm của họ.

Hiện tại, tôi đang gặp sự cố khi vẫn đăng nhập vào dịch vụ web. Trước khi bạn nghĩ rằng đó là trình khách xà phòng, tôi đã xác nhận rằng nó hoạt động bằng cách gọi các máy chủ của nhà cung cấp.

Tại địa phương, tôi có thể gọi thành công dịch vụ web trong khi đăng nhập và nó hoạt động tốt. Tuy nhiên, khi tôi thực hiện một cuộc gọi tiếp theo, tôi nhận được số Request for principal permission failed.

Theo yêu cầu hỗ trợ kỹ thuật, tôi đã thêm <trust level="Full" /> vào web.config, nhưng điều đó không hiệu quả. Bây giờ, họ đã ngừng trả lời email của chúng tôi.

Tôi không phải là nhà phát triển ASP.NET, vì vậy kiến ​​thức của tôi bị giới hạn ở cài đặt máy chủ. Ai đó có thể chỉ cho tôi đúng hướng tại sao lỗi này xảy ra và một vài nơi để tìm cách giải quyết vấn đề này?

Trả lời

2

Cuối cùng tôi đã tìm được giải pháp. Lỗi này về quyền hạn là một chút sai lầm. Sau nhiều lần thử và sai, cuối cùng tôi đã chấp nhận các quyền của người dùng của Application Pool không liên quan gì đến vấn đề này. Điều này dẫn tôi đến điều tra cài đặt web.config và đó là nơi tôi đã tìm thấy sự cố.

Sự cố là tệp web.config được cung cấp bị thiếu thẻ <authentication> và các cài đặt bắt buộc. Thẻ này (từ sự hiểu biết của tôi) là những gì cho phép cookie. Tôi hy vọng điều này sẽ giúp người khác với lỗi này ngay cả khi không liên quan đến LiveDocx. Có vẻ như Request for principal permission failed. có thể được gây ra vì nhiều lý do khác nhau khiến nó trở thành một lỗi bực bội.

Bài viết này rất hữu ích How To: Use Membership in ASP.NET 2.0

2

tôi sẽ nghi ngờ danh tính của người sử dụng được thực hiện theo yêu cầu, mà rất có thể là người sử dụng ASP.Net Application Pool cho trang web ứng dụng IIS của bạn đang chạy trong.

Cách dễ nhất để kiểm tra điều này là tạo một hồ bơi ứng dụng mới cho ứng dụng IIS của bạn (trừ khi không có ứng dụng nào khác trong nhóm ứng dụng hiện tại của bạn), chọn danh tính khác cho nhóm ứng dụng (bạn có thể bắt đầu với dịch vụ mạng, nhưng có thể yêu cầu người dùng cục bộ), sau đó gán ứng dụng của bạn cho nhóm đó.

Điều này sẽ cho bạn biết nếu đó là vấn đề về quyền với thông tin nhận dạng của hồ bơi ứng dụng.

+0

Vâng, đó không phải là ứng dụng, tôi đã thử mọi người dùng có thể và trao toàn quyền cho mỗi người dùng. –

2

Tôi chạy vào điều này bởi vì tôi có một ứng dụng dưới một trang web cấu hình để sử dụng các tên cookie sai.

Các web.config tại trang web gốc của tôi trông như thế này

<authentication mode="Forms"> 
    <forms name="AuthCookie" path="/"></forms> 
</authentication> 

và ứng dụng dưới nó có một trang web.cấu hình dưới trông giống như ứng dụng này

<authentication mode="Forms"> 
    <forms name="WRONGCOOKIENAME" path="/"></forms> 
</authentication> 

Các có mẫu web với một constructor trông như thế này

[PrincipalPermissionAttribute(SecurityAction.Demand, Role = "Foo", Authenticated = true)] 

Vì vậy, nó đòi hỏi xác thực nhưng nó không có nó bởi vì tên cookie đã sai. Việc sửa tên cookie đã giải quyết được lỗi.

2

Tôi gặp sự cố tương tự và tôi đang sử dụng ứng dụng biểu mẫu và tiếp tục gặp sự cố này. Tôi cũng đang sử dụng sự cho phép chính và nhu cầu hành động an ninh.

Tôi đã thử tất cả các cài đặt liên quan đến web.config và sự cố cuối cùng là với nhóm ứng dụng.

Nếu bạn đang ứng dụng di chuyển từ WinXP sang Win7 và phiên bản cao hơn khác, bạn có thể thấy có một Đường ống được quản lý theo mặc định trỏ trang web đến chế độ Tích hợp. Tôi đã thay đổi chế độ này thành chế độ cổ điển đã khắc phục sự cố. Hy vọng rằng điều này sẽ giúp các thành viên đang cố gắng chuyển ứng dụng từ WinXp sang Win7

Các vấn đề liên quan