Hello
Let see if i can help you
Okay you setup a vlan 900 that just exist on the controller?
If so you need to nat that and also do an intervlan routing between that ip interface and the one ip interface that got the default gateway.
Also you need to setup the dns.... on the DNS you can put 4.2.2.1 or 8.8.8.8 which are public DNS.
Remember that it would be a good idea that on the role that it get after the authentication he gets no access anywhere inside the network just like https and http and dns to the internet....
If it happens that you cannot reolve DNS the captive portal page will not work...
IF the ip interface of the vlan900 does not have an ip the captive portal also willl not work.
So check if you can resolve names
For example start connecting tot the captive portal
And do on the cmd
ping www.google.com
If it not resolve then that should be your issue....
If it resolve but stil cannot get access to the captive potal then we need to check...
You can post the config you got... maybe some screenshots of your config can help us?
Cheers
CArlos