簡體   English   中英

System.Security.SecurityException:請求主體權限失敗

[英]System.Security.SecurityException: Request for principal permission failed

任何人都可以幫助我指出如何解決此錯誤的正確方向嗎?

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)

我已經安裝了我公司從 LiveDocx 購買的這個軟件。 所以,我沒有能力修改代碼甚至閱讀代碼。 我已根據他們的文檔安裝了所有內容,並且該站點已確認可以正常工作。 我只能更改 IIS、文件夾權限和 Web.config 中的設置。 我們的服務器,他們的軟件。

現在,我在保持登錄 Web 服務時遇到問題。 在您認為它是soap 客戶端之前,我已經通過調用供應商的服務器確認它可以工作。

在本地,我可以在登錄期間成功調用 Web 服務,並且工作正常。 但是,當我進行后續調用時,我收到Request for principal permission failed

應他們技術支持的要求,我在 web.config 中添加了<trust level="Full" /> ,但這沒有用。 現在,他們已停止回復我們的電子郵件。

我不是 ASP.NET 開發人員,所以我對服務器設置的了解有限。 有人可以指出我為什么會發生此錯誤的正確方向以及解決此問題的幾個地方嗎?

我終於找到了解決方案。 這個關於權限的錯誤有點誤導。 經過多次嘗試和錯誤,我終於接受了與此問題無關的應用程序池用戶的權限。 這讓我調查了web.config設置,這就是我發現問題的地方。

問題是提供的web.config文件缺少<authentication>標記和所需的設置。 這個標簽(根據我的理解)是啟用 cookie 的原因。 我希望這可以幫助其他人解決此錯誤,即使與 LiveDocx 無關。 似乎Request for principal permission failed. 可能是由於各種原因造成的,這使它成為一個令人沮喪的錯誤。

這篇文章非常有幫助How To: Use Membership in ASP.NET 2.0

我遇到了這個問題,因為我在網站下有一個應用程序配置為使用錯誤的 cookie 名稱。

我的根網站上的 web.config 看起來像這樣

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

並且它下面的應用程序有一個 web.config 看起來像這樣

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

該應用程序具有帶有構造函數的 Web 表單,如下所示

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

所以它需要身份驗證,但沒有它,因為 cookie 名稱是錯誤的。 修復 cookie 名稱解決了錯誤。

我有一個類似的問題,我正在使用表單應用程序並繼續遇到這個問題。 我還使用了 Principal 權限和 Security Action Demand。

我嘗試了所有與 web.config 相關的設置,最后一個問題是應用程序池。

如果您將應用程序從 WinXP 遷移到 Win7 和其他更高版本,您可能會看到有一個托管管道,默認情況下將網站指向集成模式。 我將其更改為經典模式已解決該問題。 希望這對嘗試將應用程序從 WinXp 移動到 Win7 的成員有所幫助

我會懷疑執行請求的用戶的身份,這很可能是運行 IIS 應用程序的網站的 ASP.Net 應用程序池用戶。

測試這個最簡單的方法是為你的 IIS 應用程序創建一個新的應用程序池(除非你當前的應用程序池中沒有其他應用程序),為應用程序池選擇一個不同的身份(你可以從網絡服務開始,但它可能需要本地用戶),然后將您的應用分配到該池。

這應該會告訴您應用程序池標識是否存在權限問題。

在閱讀了所有博客和答案的帖子后,經過大量的反復試驗,我仍然無法解決它。

最后,我懷疑我的項目中的事情。

我們是 DevExpress 產品,幾天前就過期了,所以根據我的假設,它應該是許可的,所以我們購買了相同的許可證,現在它開始正常工作了。

PS:如果您使用的是任何許可產品,您也可能會收到此錯誤。 所以還要檢查許可證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM