我试图从安全标识符( SID )中检索相对标识符(RID),据我所知,SID是SID上的最后一个数字序列。我收到了一个使用正则表达式检索值的代码示例,但我是RegEx新手(参见下面的链接)。所以,在我没有完全理解它之前使用它之前,我的问题是:是否有理由使用RegEx而不是在字符串中的最后一个'-‘之前获得正确的最大值?
// Retrieve the RID from the SID.
string strObjectSid = "S-1-5-21-397955417-62688126-188441444-1010";
var reg = new Regex( @"^S.*-(\d+)$" );
var match = reg.Match(strObjectSid);
var rid = match.Groups[1].Value;rid的预期结果是1010。
Active Directory: DirectoryEntry member list <> GroupPrincipal.GetMembers()
此外,我尝试从AD检索RID属性,但它是不可用的。Microsoft没有提供任何检索RID的方法。我知道这似乎是一个愚蠢的问题,但是这个值对于我想要完成的任务很重要,所以它需要与我实现的任何方法一起正确。
发布于 2018-04-06 16:31:37
没有RegEx,这是没有理由的。我也是从其他地方抄袭的。
该正则表达式只是告诉它在字符串结束前出现的破折号之后查找一组数字。
所以,基本上,最后一组数字。
Substring也可以这样做(搜索最后一个破折号,添加1并返回从该位置到末尾的所有内容):
strObjectSid.Substring(strObjectSid.LastIndexOf('-') + 1)https://stackoverflow.com/questions/49683341
复制相似问题