As you want a login screen, which authenticate user before you load your windows operating system, if user is unauthenticated then you don't need to allow user to login. you can do it using your custom boot loader..
But any Managed language like C# or VB.NET are required .NET Framework to run, so you can not create your boot loader using any other managed language.
you can create your own boot loader by using C or any assembly language...
here is example article please refer below link...
How to develop your own Boot Loader[
^]