Eu abri um caso com o Microsoft Premier Support. Aqui está o email entre mim e o suporte da Microsoft. Eles basicamente dizem que é um problema conhecido. Não é um bug e não é um recurso.
O back-end analisará o nome do usuário e removerá os caracteres ilegais corretamente O front-end não faz nenhuma validação de interface do usuário porque pode haver alguma outra interface de usuário de logon de terceiros. Sua exigência no nome do usuário pode ser diferente. Eu acho que eles estão se referindo aos provedores de credenciais de terceiros.
5 de outubro de 2012 pela manhã
Acabei de telefonar para um dos seus engenheiros. Explique todo o problema para ele mais uma vez. Ele tem certeza de que :something
não tem nenhum significado especial internamente a partir de hoje, mas ele não pode garantir que isso possa significar algo no futuro.
No entanto, ele não tem código-fonte para confirmar isso. Ele vai mandar um e-mail para alguém com o código fonte para confirmar isso.
03 de outubro de 2012 noite - minha resposta
Thanks for the info. However, I did try some other illegal characters, like ; and |.
The Logon UI can successfully detect that and tell me my user name or passwords are not correct.
If the front end really doesn’t do any input validation and the back-end can really strip out all illegal characters, why won’t Logon UI allow me to login as [email protected]|something or [email protected];something but [email protected]:something.
This strange behavior happens only on “:”.
-Harvey
3 de outubro de 2012 à tarde - resposta de suporte do MS
Hello Harvey,
There is no Bug in the front end validation as the front end doesn’t perform any validation. The validation is performed once you enter your credentials and try to login, then in the background the validation is performed and the respective error is displayed.
The reason behind not performing a Validation in front is because there are other third party logon UIOs which are used and there requirement to work and authenticate a user could be different. Some UIs might require the username in a diff format, so to perform a validation when user is entering the credentials will break those UIs.
As for Backend, every UI makes a call to backend Authentication APIs, irrespective of which UI is present in the front end. So to perform validation in the backend ensures proper authentication
Regards XXXX
03 de outubro de 2012 à tarde - minha resposta
I understand the explanation on different handling in front-end and back-end as I am also a programmer.
So, it sounds like a minor bug in the front end UI input validation logic although there is no bug in the back-end.
Note that I also tried to do the same thing using runas.exe. The runas.exe showed me the error message before passing the malformed user name to the back-end. So, to me, runas.exe is doing the correct input validation.
If you still think that there is no bug in the UI front end, can you please explain the purpose of allowing end user to type in a malformed user name and then display it on the screen?
Thanks, Harvey
03/10/2012 manhã - Resposta do Suporte do MS
Hello Harvey,
I apologize for the delay. I had forwarded your question to my SME and here is his reply: no bug. the UI displays what you typed. The back end parses the string to determine the domain and username. It does that properly since : is an illegal character.
Please let me know if it clarifies your questions or if I can assist you further.
Regards XXXXX