有没有一种可靠的方法来解析字符串中的用户名和域名?

时间:2013-11-29 14:10:58

标签: c# active-directory domain-name

我搜索健壮方式将字符串解析为用户名和域名。以下字符串有效(在user name formats中指定):

  • 域\用户名
  • 用户名
  • 用户名@域名

请注意,我的应用程序必须脱机运行,无法验证任何服务。

编辑:我正在寻找.NET Framework中的一个类,它使用我的字符串构建一个用户对象,我可以用它来获取域名和用户名,就像{{{ 1}}将为我解析一个网址。

2 个答案:

答案 0 :(得分:0)

你显然可以使用像RegEx这样的

([a-zA-Z_\-0-9]+)[\\@]{0,1}([a-zA-Z_\-0-9]+){0,1}

只有一个示例RegEx,不适用于具有.com或类似结尾的域。

获取用户名和域名(如果存在)。我个人认为具有正则表达式的功能难以支持和管理,因为它们含有神秘的符号。如果你只限于3种符号,我会说你应该实现一个解析三种符号中的每一种的函数。

答案 1 :(得分:0)

以下内容应该有效。

static string ParseUserName(string logonName)
{
    if (logonName.Contains('\\'))
    {
        var logonNameParts = logonName.Split('\\');
        return logonNameParts[1];
    }

    if (logonName.Contains('@'))
    {
        var logonNameParts = logonName.Split('@');
        return logonNameParts[0];
    }

    return logonName;
}