允许我有一个简单的实现方式,其中我实例OpenIdRelyingParty然后调用RedirectToProvider的操作。它在1and1托管环境以及Cassini(Visual Studio 2010)上运行良好。然而,当我在我的PC(Windows 7)中的部署到IIS,我得到一个安全异常:安全例外 - 该应用程序试图执行安全策略
“应用程序试图执行安全策略不允许的操作要授予此应用程序。需要的权限请联系您的系统管理员或在配置文件中更改应用程序的信任级别。“
某处下面的代码:
protected void Button1_Click(object sender, ImageClickEventArgs e)
{
string realm = WebConfigurationManager.AppSettings["Realm"];
Uri returnPath = new Uri(new Uri(realm), "welcome.aspx");
using (OpenIdRelyingParty openId = new OpenIdRelyingParty())
{
IAuthenticationRequest request = openId.CreateRequest("https://www.google.com/accounts/o8/id",
new DotNetOpenAuth.OpenId.Realm(realm), returnPath);
request.RedirectToProvider();
}
}
错误消息是神秘和整顿它的知识库文章更是如此。
- 谁试图执行什么操作?
- DotNetOpenAuth试图访问什么?
- 谁或不相信谁?
- 它正在谈论什么安全策略?
- 这项政策是什么?
- 我在哪里可以找到它或更改它?
谢谢。
2012年5月2日
按照要求,这里是调用堆栈:
[SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed) +150
System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object assemblyOrString, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed) +100
System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet grants, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle rmh, Object assemblyOrString, SecurityAction action, Boolean throwException) +283
System.Security.PermissionSetTriple.CheckSetDemand(PermissionSet demandSet, PermissionSet& alteredDemandset, RuntimeMethodHandle rmh) +69
System.Security.PermissionListSet.CheckSetDemand(PermissionSet pset, RuntimeMethodHandle rmh) +150
System.Security.PermissionListSet.DemandFlagsOrGrantSet(Int32 flags, PermissionSet grantSet) +30
System.Threading.CompressedStack.DemandFlagsOrGrantSet(Int32 flags, PermissionSet grantSet) +40
System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(Int32 permission, PermissionSet targetGrant, CompressedStack securityContext) +123
System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(Int32 permission, PermissionSet targetGrant) +54
这个异常的调用堆将非常有帮助。 – 2012-02-02 17:42:11