小编sri*_*sri的帖子

DllImport,如何检查DLL是否已加载?

我正在进行P/Invoke,我使用以下方法

[DllImport("Authz.dll", SetLastError = true)]
    public static extern BOOL AuthzFreeContext(
        IntPtr phAuthzResourceManager);
Run Code Online (Sandbox Code Playgroud)

即使它工作,如何保证Authz.dll始终加载到我的代码中.假设我dll是一些XXX.dll如何在使用之前检查是否加载了dll,这样我就不会找到找不到方法的方法.

c# pinvoke

8
推荐指数
1
解决办法
4183
查看次数

Win32 Hooks DLL注入针对"任何CPU"构建的应用程序

我正在开发一个捕获所有用户交互的项目.MSDN告诉(这个)

SetWindowsHookEx可用于将DLL注入另一个进程.32位DLL无法注入64位进程,64位DLL无法注入32位进程.如果应用程序需要在其他进程中使用钩子,则需要32位应用程序调用SetWindowsHookEx将32位DLL注入32位进程,并且64位应用程序调用SetWindowsHookEx注入64位DLL进入64位进程.

我的问题是,如果构建了一个应用程序会发生什么Any CPU.我是否需要SetWindowsHookEx从构建的DLL 调用Any CPU.

我写了HookLogger_32.exe加载HookFunctions_32.dll(包括x86)和HookLogger_64.exe加载HookFunctions_64.dll(都是x64)设置WH_CBTWH_MOUSE全局(不是特定的线程).

HookLogger_32.exe,HookLogger_64.exe,HookFunctions_32.dll和HookFunctions_64.dll是用C++编写的.

当我点击构建的.NET应用程序时Any CPU,这些DLL会被注入(通过SetWindowHookEx).Windows操作系统挂起,我必须强行重启我的机器.

当针对x86或x64构建相同的.NET应用程序时,当我在HookLoggers(32位和64位)启动后单击应用程序时,一切正常.

这种未定义行为的任​​何原因.

我工作的平台是64位机器.

hook dll-injection setwindowshookex

7
推荐指数
1
解决办法
3400
查看次数

LogicalCallContext中Hashtable的线程安全性

在使用LogicalCallContext跨线程共享某些数据时,我们遇到了下面的堆栈跟踪异常

System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
   at System.Collections.Hashtable.HashtableEnumerator.MoveNext()
   at System.Runtime.Remoting.Messaging.LogicalCallContext.Merge(LogicalCallContext lc)
   at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
Run Code Online (Sandbox Code Playgroud)

我在MSDN中读取EndInvoke调用时CallContext跨线程合并.我的问题是Hashtable内部不CallContext支持并发.如果它不支持我们应该CallContext在第一点使用吗?如果是,那么有任何指导方针.

任何人都可以解释我什么时候能看到这个堆栈跟踪

如果您可以分享,这种情况的示例会更有帮助.

c# multithreading

7
推荐指数
1
解决办法
296
查看次数

授予NTFS权限时丢失的继承权限

我试图为特定用户的UNC路径授予NTFS权限,但我看到不同的行为取决于UNC路径.下面是我用来赋予权限的代码(来自MSDN)以及每个场景中的结果,

static void GiveNTFSPermissions(string folderPath, 
                                string ntAccountName, 
                                FileSystemRights accessRights)
{
    DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);

    FileSystemAccessRule newAccessRule =
         new FileSystemAccessRule(
               ntAccountName,
               accessRights,
               AccessControlType.Allow);

    dirSecurity.AddAccessRule(newAccessRule);

    Directory.SetAccessControl(folderPath, dirSecurity);
}
Run Code Online (Sandbox Code Playgroud)

假设我的本地计算机上有一个名为" RootShare " 的共享,并且其中有另一个文件夹" InsideRootShare ".

场景1: 当我打电话时,

GiveNTFSPermissions(@"\\sri-devpc\RootShare",
                    @"domain\username",
                    FileSystemRights.Write);
Run Code Online (Sandbox Code Playgroud)

共享路径上丢失了继承的权限,

场景2: 当我打电话时

GiveNTFSPermissions(@"\\sri-devpc\RootShare\InsideRootShare", 
                    @"domain\username", 
                    FileSystemRights.Write);
Run Code Online (Sandbox Code Playgroud)

继承的权限完好无损.

我试过不同的构造者,FileSystemAccessRule但没有运气.

这种行为背后的原因是什么,以及针对此的任何解决方法?

c# permissions

6
推荐指数
1
解决办法
1004
查看次数

Internet Explorer的内容安全策略(CSP)解决方法

我们正在建立一个ASP.NET网站,并希望仅允许一些可以iFrame访问我们网站的域名.Internet Explorer中不支持CSP.我正在设置类似的东西 Response.AddHeader("Content-Security-Policy", "frame-ancestors mydomain1.com mydomain2.com").

每个人如何处理Internet Explorer.我阅读IE支持,X-Content-Security-Policy但它没有frame-ancestors.

此外,我正在删除由IIS添加的默认X-Frame-Options标头

Response.Headers.Remove("X-Frame-Options")
Run Code Online (Sandbox Code Playgroud)

iframe internet-explorer content-security-policy

6
推荐指数
1
解决办法
2万
查看次数

如何最小化Silverlight应用程序到系统托盘

哪能minimize一个Silverlight Out Of Browser应用程序windows system tray?可能吗?

silverlight silverlight-oob

5
推荐指数
1
解决办法
1231
查看次数

创建静态Datacontext()或在需要时创建.哪个更好?为什么?

我有一个函数,在里面我DataContext()每次调用函数时都会创建一个函数.创建一个的成本是多少new DataContext().我可以创建static DataContext()并在任何地方使用它.因为当SubmitChanges()失败时,DataContext会对所有更改进行完整记录,有没有办法可以从失败DataContext时删除这些特定的更改SubmitChanges().我的问题哪个更好Creating static Datacontext()还是Creating whenever its needed

linq-to-sql

3
推荐指数
1
解决办法
1697
查看次数

DLL包含什么?Debug DLL和Release DLL有什么区别?

我有一个Windows Service(一个Release Build),我替换了一个在Debug模式下构建的DLL,并尝试启动该服务.它抛出错误无法加载文件或程序集"名称"或其依赖项之一.尝试加载具有不正确格式的程序,但是当我替换内置于发布模式的DLL时,服务已成功启动.我的问题是why is there a difference between a DLL built in Debug mode & in Release mode. What is the difference.

dll

3
推荐指数
1
解决办法
4204
查看次数