That is a good question and I wanted to reply to encourage the discussion. It seems to me that not much has been done with the membership interface and the potential seems rich and rewarding to those of us who manage portals with a significant number of users. To accomplish expiration of users I've created a role 'authorized user' with an expiration date. That may seem redundant but my reasoning is this; checking authorize when a user registers (I'm using the registration method that requires approval) doesn't give you any options to set an expiration. So I created an 'authorized user' role which also helps me to secure content that I don't want available. The hitch is that once a user 'expires' they still can access the site because they are authorized in the membership and worse, they don't get a warning that they need to renew. It causes hard feelings I have found...
Please request enhancements in this area to try to spur the team forward! Some enhancements that I have thought of:
1. More functionality in the User Accounts interface; allow search on roles, expiration date, etc. I know, there is a role utility but it's not useful, especially since the only view option is display name. In user accounts I see usernames, in Roles I see display name, how practical is that?
2. An option to give users some heads up that a role is expiring, right now we use password term to do that but A. users can reset their password and "renew" without my approval. I want to be able to approve renewal without having to expire the user and make them mad. Oh and without me having to run monthly reports and reach out manually to the users.
3. Alex's suggestion is great too, an option to set a limit on last logged in date and when it's exceeded, accounts would become inactive.
I know there are modules out there that do some of this, I use them because otherwise I would be pulling my hair out and I only have 3000 users, I can't imagine managing larger groups with the tools provided in DNN. What do other people do to manage their users?