c# - sid 字符串是众所周知的 sid
问题描述
有没有一种快速的方法(无需将所有众所周知的 sid 复制到代码中)来确定 sid 字符串是否是众所周知的字符串?
bool IsWellKnownSid(string sid)
解决方案
您可以使用WellKnownSidType
枚举,就像 Austin 提到的那样,但您仍然必须遍历每个值以检查它是否匹配。
这是一种可以做到这一点的方法:
private static WellKnownSidType[] _wellKnownSids = (WellKnownSidType[])Enum.GetValues(typeof(WellKnownSidType));
public bool IsWellKnownSid(SecurityIdentifier sid) {
foreach (var wellKnown in _wellKnownSids) {
if (sid.IsWellKnown(wellKnown)) return true;
}
return false;
}
该_wellKnownSids
字段是为了防止您在Enum.GetValues
每次调用该方法时调用该方法,而值将始终相同。
如果您愿意,可以将其更改为扩展方法:
public static bool IsWellKnownSid(this SecurityIdentifier sid)
推荐阅读
- javascript - React Native - 数组内对象内的数组状态更新问题
- mysql - 从表中选择多行并插入到不同的表中
- python - 我如何在 Ubuntu 中使用 pyenv 返回我的系统 python
- javascript - Vue - 是否可以在组件的计算属性中使用 Vuex getter?
- javascript - rm -rf 不显示任何错误但不删除任何文件 VS Code
- android - adb - 添加 PIN 但不安全启动的脚本
- java - 如何通过 HSSFWorkbook 设置图像大小
- apache-kafka - Kafka文件流连接和流API
- python - 来自 Automate Boring Stuff With Python 的任务。5
- visual-studio-code - 以编程方式在源代码控制消息输入框中设置焦点(vs code API)