从 IIS 中运行的 MVC 应用程序调用 LoadLibrary
我在 MVC 应用程序中执行这行代码时遇到问题:
IntPtr hModule = LoadLibrary(BondProbeSettings.AssemblyFilePath);
问题是 hModule
始终为 0
。
如果我使用相同的 BondProbeSettings.AssemblyFilePath
值运行相同的代码,但从控制台应用程序而不是 MVC 应用程序 hModule
则为非零。
我需要考虑任何安全问题吗?
LoadLibrary 的签名是:
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
I'm having trouble executing this line of code in my MVC application:
IntPtr hModule = LoadLibrary(BondProbeSettings.AssemblyFilePath);
The problem is that hModule
is always 0
.
If I run the same code with the same value for BondProbeSettings.AssemblyFilePath
but from a console application instead of the MVC app hModule
is non-zero.
Are there any security issues I need to consider?
The signature for LoadLibrary is:
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将声明更改为: 将
代码更改为:
现在您会知道为什么它不起作用。
Change the declaration to:
And your code to:
Now you'll know why it doesn't work.
是的,您需要以完全信任的方式运行站点程序集。我自己还没有配置这个,但我认为你需要:
我在 Linux 上,所以我现在无法通过屏幕截图帮助您
Yep you need to run the site assembly in full trust. I haven't configured this myself but I reckon you need:
I'm on linux so I can't really help you with screenshots right now