问题标签 [advapi32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 如何使用 CredentialManager 记住 IP 地址?
我必须记住 wpf 应用程序中的用户名和密码以及 Ipaddress,并且我尝试按照以下链接中给出的方式使用凭据管理器进行操作: 在 WPF 应用程序中加密凭据
它可以很好地记住用户名和密码,但从不记住我想记住的 Ipaddres。另一个问题是当我打开电脑的第二天,它甚至忘记了用户名和密码的记忆。它应该永远记住它。
我的代码在这里:
将凭据写入 COM :
凭证结构:
从 COM 读取:
如何解决这两个问题:
(1) 如何记忆IP地址
(2) 如何在下一台电脑开机后的第二天记忆数据
我找到了第二个问题的答案:CRED_PERSIST_LOCAL_MACHINE 但不是第一个问题,我能找到的第二个问题的另一个解决方案是“CredentialManager.WriteCredential("Application", userName + "+" + ipAddress, passWord);" 然后在 '+' 上阅读时拆分。如果有人知道更好的解决方案?
c# - 如何在 PowerShell 中使用 Windows API AuditEnumerateCategories 函数?
我想使用 PowerShell获取当前的高级安全审计策略。我可以使用auditpol.exe
,但它的输出因操作系统语言而异,这使得解析变得困难。
这些设置存储在 REG_NONE 值中HKEY_Local_Machine\Security\Policy\PolAdtEv
。我可以尝试借助该非官方结构表来解析该值。但是,我首选的方法是AuditQuerySystemPolicy
使用advapi32.dll
.
在本文的大力帮助下,我在 PowerShell 中创建了一个 Type,如下所示。
类型已成功创建,但第一步我失败了 - 获取所有审计类别的 GUID。我有不同类型的问题。我试过例如
我还尝试将AuditEnumerateCategories
定义输出从更改IntPtr
为Guid
。的输出ppAuditCategoriesArray
是
指向单个缓冲区的指针,该缓冲区包含指向 GUID 结构的指针数组和结构本身。
不幸的是,我不知道如何在 PowerShell 中处理它。
java - 在 Java 中订阅 Windows 事件日志
我正在使用 java.nio.file.WatchService 监视文件夹的更改,以查看文件何时被修改。我还需要的是,当我收到 ENTRY_MODIFIED 事件时,查看谁修改了文件。为此,我正在尝试搜索 Windows 事件日志。因此,当我收到来自 WatchService 的事件时,我会使用 Advapi32Util.EventLogIterator 遍历 Windows 事件日志中的条目。
从这个记录中我检索到我需要的信息。我的问题是,如果我恰好在从 WatchService 接收到事件的时间遍历事件日志,那么日志记录仍然不存在。如果我暂停 500 毫秒并在此之后遍历,那么它可以工作。因此,将日志条目写入事件日志需要一些时间。有没有办法订阅事件日志,以便在它已经更新并准备好遍历时收到通知,这样我就不会等待超过需要的时间?(有时 500 毫秒可能超出必要,我想尽快执行操作)
powershell - 如何模拟登录用户?
我需要模拟登录用户。由于 ps 安全上下文,它是必需的。
让我解释。我有一个双赢的服务。还有一个具有完整逻辑的 dll 库。还有两个不同的客户端(.exe 和 ps)通过 dll 使用这个服务。
当我启动 .exe 并调用 win 服务时,一切正常。但是当我启动 ps 并尝试使用具有相同参数的相同 win 服务方法时,它给了我这个错误:(而且我在同一台机器上使用相同的用户启动 exe 和 ps)
未提供所需的模拟级别,或者提供的模拟级别无效。
实际上,我尝试使用当前帐户进行模拟。所以我找到了以下方法:
但我不能叫它。它给了我以下错误:您不能在空值表达式上调用方法。
python - Python 3 中 LogonUserW 中的访问冲突
我正在为某人编写一个 Python3 脚本,该脚本通过 ctypes 使用 advapi dll 及其 LogonUserW 函数。
运行代码时
在__init__函数中
在 login(username, domain, password) 函数中
它提出了OSError: exception: access violation writing 0x0000000000000000
知道什么可能导致错误以及如何解决吗?
PS:是的,我知道我没有遵循 PEP 8 的变量名,我通常是一名 java 程序员。
python - 模拟用户后如何刷新python中的环境变量?
我一直在努力允许某人冒充用户,(请参阅:Python 3 中 LogonUserW 中的访问冲突)
我已经验证了这一点,因为 os.getlogin() 现在返回了一个不同的用户,并且文件访问权限行为相应地更改为模拟用户。
但是我注意到环境变量没有改变,因为它们在启动时被缓存。我能做什么,这样我就可以为模拟用户刷新环境变量。
c# - C# 模拟保存在 NAS 驱动器上不起作用
我一直在尝试在我的 c# 应用程序上实现模拟以将文件保存在 NAS 驱动器上,但即使我的凭据有效。由于用户名或密码不正确,我不断收到错误消息。它工作了几次,然后一直失败。当我在 IIS 上部署它时发生了这种情况。
我也尝试使用 LOGON32_LOGON_NEW_CREDENTIALS 作为登录类型以及 LOGON32_PROVIDER_WINNT50,但没有运气。我在这里想念什么?NAS服务器上是否有任何配置?或者还有什么要补充的?
kerberos - 使用 Java 和 Kerberos 以不同用户身份创建进程
我正在开发一个 Java 服务器应用程序(在 Windows 下作为服务运行)并希望实现以下场景:
- 用户向服务器发出 POST 请求。用户通过 Kerberos(SPNEGO、企业环境中的 SSO)进行身份验证。
- 该服务创建一个新的 Java 进程。该进程必须作为经过身份验证的用户而不是服务用户(模拟/委托)运行。
- 新进程应在用户的安全上下文中执行。它必须与需要 Kerberos 身份验证的其他远程系统通信(例如文件共享、其他 Web 服务……)。
工作概念验证:
- 用于 Kerberos 身份验证的带有Waffle的Spring Boot 应用程序。
- 为经过身份验证的用户创建一个新进程。我使用JNA和 Windows 原生函数CreateProcessAsUser。
- 该进程被创建为经过身份验证的用户。我可以使用 Process Explorer 实用程序来验证这一点。
缺少什么并且不起作用:
- 进程无法请求其他 Kerberos 票证(例如通过调用 InitializeSecurityContext())
- 该进程无法访问网络共享。
- 该进程无法与需要 Kerberos 身份验证的其他 Web 服务进行通信。
我的问题:
- 我错过了什么或我的代码可能有什么问题?
- 甚至有可能实现我想要实现的目标吗?
服务器 - 身份验证(缩短,从 Waffle 中提取):
服务器 - CreateProcessAsUser:
sql-server - 如果使用 remoteapp 和 runas 其他用户,则获取启动 MS Access 的人的原始用户名
我想获得启动 RemoteApp MS Access 应用程序的人在 VBA 中的用户名。我已将其设置为让每个人都使用服务帐户(称为“svcactuser”)登录到应用程序,以便 Access/SQL Server 可以在没有表锁的情况下管理连接并运行 SP。通常在我会使用的任何 Access 应用程序中:
现在我需要另一种方法来获取实际的用户用户名(而不是服务帐户用户名“svcactuser”)。你能告诉我如何在 VBA 中获取这些信息吗?
谢谢
git - 执行某些命令(如“修剪”)时,Wincred 无法与 Git Bash(Windows 版 Git)一起正常工作
我已经在我的 Windows 7 64Bit 中很好地设置了 GitforWindows,凭据管理器为“Wincred”。
然而,当我git remote prune origin
在 GitBash 中运行一些命令时,它会在控制台中出现以下错误,尽管运行命令:
这是为什么 ?如果需要对凭据管理器设置进行某些操作,那么我需要完整说明如何进行这些设置以及每个设置的含义。
注意:这个问题我只有一些命令,其他命令运行得很好,没有任何错误。