System.Security.SecurityException:对主体权限的请求失败

时间:2012-01-11 01:16:27

标签: c# asp.net iis web-config livedocx

任何人都可以帮助我指出如何解决此错误的正确方向吗?

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

应他们的技术支持请求,我已将<trust level="Full" />添加到web.config,但这不起作用。现在,他们已停止回复我们的电子邮件。

我不是ASP.NET开发人员,所以我的知识仅限于服务器设置。有人能指出我正确的方向,为什么会发生这种错误,还有几个地方可以解决这个问题?

4 个答案:

答案 0 :(得分:2)

我怀疑正在执行请求的用户的身份,这很可能是运行IIS应用程序的网站的ASP.Net应用程序池用户。

最简单的测试方法是为IIS应用程序创建一个新的应用程序池(除非当前应用程序池中没有其他应用程序),为应用程序池选择不同的标识(可以从网络服务开始,但它可能需要本地用户),然后将您的应用程序分配给该池。

这应该告诉您它是否是应用程序池标识的权限问题。

答案 1 :(得分:2)

我遇到了这个,因为我在一个配置为使用错误的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名称解决了错误。

答案 2 :(得分:2)

我有类似的问题,我正在使用表单应用程序并继续解决此问题。我还使用了Principal权限和Security Action Demand。

我尝试了所有与web.config相关的设置,最后一个问题是应用程序池。

如果您将应用程序从WinXP迁移到Win7和其他更高版本,您可能会看到有一个托管管道,默认情况下将网站指向Intergrated模式。我把它改成经典模式,这已经解决了这个问题。希望这有助于试图将应用程序从WinXp移动到Win7的成员

答案 3 :(得分:0)

在阅读了所有博客和答案后,经过反复尝试和失败,我仍然无法解决问题。

最后,我怀疑我项目中的东西。

我们是DevExpress产品,它已在几天前过期,所以根据我的假设,应该已获得许可,因此我们购买了该许可,现在它可以正常工作。

附注:如果您使用的是任何许可产品,也可能会遇到此错误。因此,也请检查有关许可证的信息。