login为“[email protected]:什么”的含义是什么

我的Windows 2008 R2计算机已join到中。

login屏幕中,如果我input“[email protected]:something”作为用户名,我仍然可以正常login,最后附加“:something”的含义是什么?

我甚至可以看到当前用户在切换用户屏幕中显示为“[email protected]:something”。 它是Windows中的一个function吗? 还是只是一个错误? 如果它是一个function,login为“[email protected]”和以“[email protected]:login”有什么区别?

请注意,我尝试了不同的组合,如“mydomain \ username:something”和“mydomain.com:something \ username”。 除了“[email protected]:something”之外,他们都没有工作。

2012年9月10日更新

由Justin提出的RunAs问题与我想解决的问题类似,但不完全一样。 如果你这样做

runas /user:[email protected]:anything 

你会得到

 RUNAS ERROR: Unable to acquire user password 

我证实RunAs甚至在查看[email protected]:anything时都不会打扰到LSA [email protected]:anything用户名。 RunAs应该已经完成​​了inputvalidation,并返回错误。

WinLogon是不同的。 它接受这种input格式并将“[email protected]:anything”传递给LSA。 我看到kerberos.dll里面的LogonUserEx2被调用。 这是要么WinLogoninputvalidation逻辑中的错误,或者这是一个真正的一些隐藏的function可接受的格式。

2012年9月26日更新

我刚刚向Microsoft Premier Support提交了一个案例。 我会在这里更新,如果我从他们得到任何更新。

    我用Microsoft Premier Support打开了一个案例。 这里是我和微软支持之间的电子邮件。 他们基本上说这是一个已知的问题。 这不是一个错误,它不是一个function。

    后端将parsing用户名并正确删除非法字符前端不做任何UIvalidation,因为可能有一些其他第三方login用户界面。 他们对用户名的要求可能不同。 我认为他们指的是第三方证书提供商。

    2012年10月5日上午

    我刚接到一位工程师的电话。 再次向他解释整个问题。 他很确定:something今天在内部没有什么特别的意思,但是他不能保证这个意思是未来的意思。

    但是,他没有源代码来确认。 他将用源代码发送一封电子邮件给其他人,以证实这一点。

    2012年10月3日晚 – 我的回复

    谢谢(你的)信息。 但是,我也尝试了其他一些非法字符,比如; 和|。

    login界面可以成功检测到,并告诉我我的用户名或密码不正确。

    如果前端确实没有进行任何inputvalidation,后端可以删除所有非法字符,为什么login界面不允许我以[email protected]?something或[email protected];但是[email protected]:有些事情。

    这种奇怪的行为只发生在“:”。

    -Harvey

    2012年10月3日下午 – MS支持回复

    哈维你好,

    前端validation没有Bug,因为前端没有执行任何validation。 一旦你input你的凭证并尝试login,validation就会被执行,然后在后台执行validation,并显示相应的错误。

    之前没有进行validation的原因是因为还有其他第三方loginUIO使用,并且需要工作和validation用户可能是不同的。 某些用户界面可能需要使用diff格式的用户名,因此在用户input凭据时执行validation会破坏这些用户界面。

    对于后端,每个UI都会调用后端的Authentication API,而不pipe前端存在哪个UI。 所以在后台执行validation可以确保正确的身份validation

    问候XXXX

    2012年10月3日下午 – 我的回复

    我也理解前端和后端不同处理的解释,因为我也是程序员。

    所以,这听起来像是前端UIinputvalidation逻辑中的一个错误,虽然后端没有错误。

    请注意,我也尝试使用runas.exe做同样的事情。 在将错误的用户名传递给后端之前,runas.exe向我显示了错误信息。 所以,对我来说,runas.exe正在做正确的inputvalidation。

    如果您仍然认为UI前端没有错误,您能解释一下允许最终用户input格式错误的用户名并将其显示在屏幕上的目的吗?

    谢谢,哈维

    2012年10月3日上午 – MS支持回复

    哈维你好,

    我为延误表示歉意。 我已经把你的问题提交给我的中小企业,这是他的答复:没有错误。 界面显示你input的内容。 后端parsingstring以确定域和用户名。 这样做是正确的,因为:是非法的字符。

    请让我知道,如果它澄清你的问题,或者如果我可以进一步帮助你。

    问候XXXXX