I have an ASP.NET web application "K" that has its own authentication and authorization built on SimpleMembershipProvider.
Now I want to set up a web site that has application "K" and DNN, in a way that the user will log in to DNN app and I have a button within DNN app that will jump to app "K".
Within "K", I would like to implement these behaviors.
- If the user is not logged in, go back to DNN's home page.
- If the user is logged in but does not have a "K-user" role in DNN, show "contact administrator" message.
- If the user is logged in and have "K-user" role in DNN, allow the user to use the app as usual.
This is brand new site so I do not have any constraint. I can put "K" under DNN (or vice versa, but not sure why I would do it that way), I can put "K" next to DNN and give the same machineKey to share cookies, I don't even have to use DNN, it can be any CMS as long as it has nice and easy way to fill in information.
I must be using wrong keyword on my googling. It seems very basic need but can't find exact article that can show me how to do it.
Any helps would be much appreciated.
It sounds like you need to modify the authentication method of your "K" application. Then, you could build a module that takes care of the behaviors based on whether the user is logged in and is in a certain role.
Once you log into DNN and check the roles, your user needs to be authenticated to the "K" website.
We do something similar, but it required that our "internal" site would accept a token as proof of who the user was and they were authenticated.
Here is an example of what we do:
Here is how I solved it.
>
Now, the user will log in onto DNN, and click a link to access "K". When this happens, "K" can behave as if the user actually logged in using "K" application, like reading roles from Web.Security, etc. That comes for free since you made its forms authentication cookie name and MachineKey synced between two applications.