我的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