asp.net 4.5 mixing forms and windows authentication - authentication

I'm starting a new ASP.NET 4.5 web forms application and one of the requirements is that there is the user to login with windows authentication if available or login using forms authentication if the user is not a member of the domain.
Additionally, there are 2 scenarios, above is the first one for if the user is on the internal network the other is if the user is accessing the application externally (https). In that case a prompt for user name and password should be able to authenticate either user type, be they a windows user or forms/application user.
Are these two options even possible? If so, how would I accomplish this?
I have combed the web for a few days now and everything I've seen so far is dated so I'm not sure if they are the best solution or if they will even work.
TIA

Related

Active directory authentication by LDAP in asp.net core 3

I’m implementing asp.net core 3. I want to create a login page for users who are in the active directory using LDAP.I can not find any exhausting guidance for asp.net core 3 through which I can get help for implementing it. I appreciate if any one suggests me a tutorial or any relevant sample.
Ideally, you can use Windows Authentication. This is best for an intranet application. If the user's log into their computers with the same account that they need to authenticate to your website, then as long as the website is trusted (added to the Trusted Sites in Internet Options in Windows) then their credentials will be automatically sent and they will not have to put in their username and password themselves.
However, if your situation does not meet the criteria for that to work, then you need to build your own authentication. You're taking a username and password from the user and validating it, just like you would if you had your own database of users. The only difference is how you validate them.
The answers to this question might help get you started: ASP.NET Core 2.0 LDAP Active Directory Authentication
Or there are other examples if you search Google for "asp.net core ldap auth".

MVC authorize not authenticate using AD

I have scoured this and many other sites to find an answer but have come up short every single time. If this is a duplicate, I am very happy to accept direction to the original question with an answer:
I have built an MVC 4 site and I am using the Authorize tag where needed and this is working as expected.
My issue is that I require a mechanism by which to prompt the user (already logged in or some other valid user in the domain) to enter their windows credentials on one page in order to confirm/authorize that user. This is not what the authorize filter is doing. The authorize filter is actually authenticating the user. Thus changing the User.Identity information accordingly.
Is it possible to just authorize a user (not authenticate) without actually changing the User object?
Just returning the 401 response forces the windows prompt but that, in turn, does an authentication, not an authorize.
While a solution could be achieved with a custom action that accepts username/password input, my requirement specifically calls for the native browser windows prompt to be displayed.
The site is using IIS Express and is set up for windows authentication and every aspect of this does what I need. Except for the issue of "true" authorization mentioned above. The browser has to be IE9. Currently running on Windows 10.
No. You're currently using Windows Authentication, and this is how it works. There is no need to login because the user is already logged into Windows, that's the point.
To do what you want, you would need to use an individual auth library like Identity. Which will give you the login capability. However, that doesn't work with AD out of the box, but you can add that in yourself. In otherwords, instead of using the Identity functionality to look a user up by username and password to authenticate, you'd connect to AD over LDAP, and verify the credentials there. You'd also need to use the LDAP connection to add the user's groups in AD to the their roles in Identity. Then, you can utilize the Authorize attribute as normal.
Long and short, if you want to actually allow the user to login as any AD user, then you're pretty much on your own. There's no builtin functionality for that. It's relatively straight-forward, if not entirely easy, to set something up yourself for that that, but again, that's on you.

Passing windows authentication between two websites

I'm working on a website that needs to be authenticated to via windows authentication in iis. To access this website you are required to login using windows authentication on another site.
I want to pass that windows authentication to my website so they do not need to log in. is this possible? and how? Ive looked through impersonation and keroberos but they dont seem to by what I'm looking for. The site also needs to have the correct credentials because the windows user is a parameter to get sql information for each individual user.
Thanks for the reply!, after a few hours of trial and error i found that it is paritally browsers issues and partially authentication issues. In firefox and chrome the authentications persist through, but not in IE. The solution was to change the authentication to windows authentication, then change the provider to Negotiate:kerberos in the authentication Configuration in IIS.

Sharepoint 2010 Authentication Change from Windows Based to Claims Based User Profile Sync

I have a Sharepoint 2010 application with mysites, therefore I use User profile sync service.
I changed the authentication method from windows to claims based ( choosing forms), and made necessary updates on web.config and run the commands on powershall, so I am using LDAP.
My application works with forms based authentication now, no issues, but I can not authanticate to mysites as my user name format has changed from domain/username to
One option is to somehow map new ldap formatted user and windows ad users (do not know how??), or I need to create a new connection on the user profile sync service to connect to ad with forms authantication and import users with new format too (failed to do so, any idea what needs to be configured on domain controllers to do that? ). Although, this will cause that users would get 2 different mysites if they login with windows or forms based auth.
Any idea is appreciated.
Thanks.
You need to use Move-SPUser command to make that work. For more info check the MSDN Documentation.

iis7 Challenge-based and login redirect-based authentication cannot be used simultaneously

I have an asp.net web site, earlier version of the application need to run in classic mode, the latest version can run in integrated mode. Generally the application is configured to use Forms Authentication but it can be configured to used Windows Authentication.
There is a business requirement that even when running IIS in Windows Authentication the application should still support forms authentication this is so administrators are forced to login with a username/password. This is handled internally with code that determines whether to log the user in or redirect to login
ISS6 allowed this configuration with no problems and in fact IIS 7 can be configured in this way, except for the fact that it shows an "Alert" message "iis7 Challenge-based and login redirect-based authentication cannot be used simultaneously". This message doesn't appear to be strictly true as the application seems to work as intended, happily supporting IIS as windows auth but the asp.net app thinking its forms auth.
The problem I have is with the "Alert" message, as this will no doubt cause confusion and support calls.
Is there way to provide both windows auth and forms auth and keeps IIS7 UI happy?
There's a well detailed proposal that basically does the following:
Applies Forms authentication everywhere as this is not applicable piecemeal on a site. Then to have a gateway page (login) where the windows authentication takes place. It's not flicking a switch but I'm going to be trying it myself.
I'll report back on how it goes if there's interest.