很可能是在试图从无效的 GUID 值初始化某种安全描述符的框架代码深处引发异常。如果框架正在捕获它并在内部处理它,我就不会担心它。
跟踪框架代码,这里可能是它发生的一个地方:
protected static bool IdentityClaimToFilter(string identity, string identityFormat, ref string filter, bool throwOnFail)
{
if (identity == null)
identity = "";
StringBuilder filter1 = new StringBuilder();
switch (identityFormat)
{
case "ms-guid":
Guid guid;
try
{
guid = new Guid(identity);
}
catch (FormatException ex)
{
if (throwOnFail)
throw new ArgumentException(ex.Message, (Exception) ex);
else
return false;
}
...
请注意,它尝试创建一个新Guid
的 ,如果失败,则会引发异常,但代码会吞下它并返回 false