Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

My Windows 2008 R2 machine is joined to a domain.

In the logon screen, if I type in "username@mydomain.com:something" as the username, I can still logon properly, what's the meaning of ":something" appended at the end?

I can even see the current user is displayed as "username@mydomain.com:something" in the switch user screen. Is it a feature in Windows? Or is it just a bug? If it is a feature, what's the difference between logging in as "username@mydomain.com" and logging in as "username@mydomain.com:something"?

Note that I tried different combinations like "mydomain\username:something" and "mydomain.com:something\username". None of them work except "username@mydomain.com:something".

Sept 10 2012 Update

RunAs problem raised by Justin is similar but not exactly the same as the problem that I want to solve. If you do

runas /user:username@mydomain.com:anything

you will get

RUNAS ERROR: Unable to acquire user password

I verified that RunAs doesn't even bother to call into LSA when seeing username@mydomain.com:anything as the username. RunAs should have done input validation and return error there.

WinLogon is different. It accepts this format of input and pass the "username@mydomain.com:anything" into LSA. I do see the LogonUserEx2 inside kerberos.dll got called. It's either there is a bug in WinLogon input validation logic or this is really an acceptable format for some hidden features.

Sept 26 2012 Update

I just submitted a case to Microsoft Premier Support. I will update here if I get any update from them.

share|improve this question
5  
That.. is interesting. –  Shane Madden Sep 7 '12 at 2:10
    
Can ":something" be ":anything"? Seems like Windows it treating it as a port number or extension, very strange. –  Brent Pabst Sep 7 '12 at 3:00
2  
Crazy. I just tested this and it is possible to create a UPN suffix of domain.tld:anything, and log onto the domain with this UPN. –  joeqwerty Sep 7 '12 at 3:47
1  
If I do runas /user:"jdearing@domain.com:something" "cmd /C dir c:\ & pause" it returns RUNAS ERROR: Unable to acquire user password as opposed to the normal 1326: Logon failure: unknown user name or bad password. for a failed login. –  Justin Dearing Sep 7 '12 at 15:39
2  
FYI: Posted to TechNet Forums as well, not sure if the Windows team will see it there or not: bit.ly/UF94GQ –  Brent Pabst Sep 10 '12 at 19:54

2 Answers 2

I opened a case with Microsoft Premier Support. Here is the email between me and Microsoft support. They basically say that it's a known issue. It's not a bug and it's not a feature.

The back-end will parse the user name and strip out the illegal characters properly The front-end doesn't do any UI validation because there might be some other third party logon UI. Their requirement on the user name might be different. I think what they are referring to is the 3rd party Credentials Providers.

Oct 05, 2012 morning

I just got on the call with one of their engineers. Explain the whole problem to him once again. He is pretty sure that :something has no special meaning internally as of today but he cannot guarantee it might mean something in the future.

However, he doesn't have source code to confirm that. He is going to send out an email to somebody else with source code to confirm that.

Oct 03, 2012 night - my reply

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 Harvey@company.com|something or Harvey@company.com;something but Harvey@company.com:something.

This strange behavior happens only on “:”.

-Harvey

Oct 03, 2012 afternoon - MS support reply

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

Oct 03, 2012 afternoon - my reply

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

Oct 03, 2012 morning - MS Support reply

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

share|improve this answer
3  
Outstanding effort and answer. I regret that I have but one upvote to give this. (And, FWIW, you've inspired me to test this with other "illegal" characters.) –  HopelessN00b Oct 4 '12 at 2:08
    
I love it when I deal with a vendor and get an evasive series of answers like this. I especially love the comparison with the runas behaviour, and the obvious inconsistency where only that one specific "illegal character" is stripped (and apparently everything after that as well...) But excellent work on contacting MS. At least you didn't have to convince them that 0.002c != $0.002 :) –  Jon Kloske Oct 4 '12 at 5:52

The syntax reminds the syntax of username:password pair in web URL login syntax, where jdearing@domain.com is username (e-mail) and something is a password.

Probably your administrator configured your domain in such a way, while Windows just treats the entire string as username.

Go to your user add/delete applet and check username field.

share|improve this answer
1  
Are you saying go to ADUC and check the username field? There is nothing special there. I know what you are talking about on username:password pair. I am pretty sure this is irrelevant –  Harvey Kwok Sep 27 '12 at 23:40

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.