如何修复Windows Forms应用程序中的System.Security.SecurityException错误?

时间:2019-04-23 21:44:08

标签: .net vb.net winforms security mscorlib

我有一个继承的Visual Studio应用程序(VS2010),并已转换为一个较新的版本(VS2013)。除了一些小的修改(数据库连接字符串,Crystal Report源文件)之外,该应用程序是相同的。这是一个Windows窗体应用程序,允许用户从SQL数据库中选择报告,并在Crystal报告中显示数据。

当我以管理员身份执行该应用程序时,将显示winform,并且我可以从数据库中选择要查看的报告(一切正常)。当我以标准用户身份执行该应用程序时,我会立即收到通知,告知该应用程序已停止工作。如果我选择在标准用户帐户下以管理员身份运行应用程序,也会发生这种情况。

日志文件如下:

“ System.Security.SecurityException未处理 消息:mscorlib.dll中发生了类型为'System.Security.SecurityException'的未处理的异常 其他信息:不允许请求的注册表访问。”

这会在我的开发机器(Windows 7 64位)和最终用户机器(Windows 7 32位)上发生。我尝试了一些在线发现的建议,包括:

  1. 编辑注册表以对HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \ SERVICES \ EVENTLOG文件夹上的ASPNET和本地用户帐户授予“完全控制”权限。

  2. 验证应用程序中使用的两个自定义* .dll在注册表中具有正确的访问权限(每个组,用户组均具有读取访问权限)。其中一个库尝试打开键并读取关联的值。

  3. 将“ ASPNET”用户放在管理员组中(尽管这不是IIS应用程序,但我想我会试一试)。

  4. 用户帐户控制已被禁用。

我的期望是,当本地用户(仅属于用户组的一部分)执行该应用程序时,winform似乎会列出可供选择的报告。

我很茫然,已经开始用尽主意。谁能指出我正确的方向?

0 个答案:

没有答案