The Web Management API
Asp.Net includes a membership system that's great for self-service web sites, where users can set up their own account and recover lost passwords. Although some built-in functionality allows for listing and updating basic data, it is not easy to perform certain administrative functions such as changing a user's password since Asp.Net requires information such as the old password or password question when calling its methods.
The Web Management API is a library of functions that work with and extend the Membership, Roles, Profile and Health Monitoring capabilities of Asp.Net to provide tools that are useful for anyone who administers or manages an Asp.Net Web Application. In some cases, the tools simply re-package built-in functionality to make it available from remote clients and in other cases, the tool introduces whole new capabilities.
The Web Management API works with these aspects of Asp.Net:
Membership
Methods for locating and updating membership users
Roles
Methods for identifying role members and setting role membership
Profile
Methods for defining user interface hints for creating a dynamic Profile UI
Health Monitoring
Methods for locating, grouping and deleting Asp.Net Health Monitoring "web" events.
The Web Management API provides functionality that includes:
- Searching for users, role members, web events based on search criteria with support for pagination
- Retrieval of extended information for a membership user in a single request that includes profile data (including labels), password format, role membership and so forth
- Ability to administratively change or reset user passwords
- Ability to change the passwordFormat for individual users
- Access to methods using http requests and get the response as XML or JSON (the REST API)
- Information to help measure performance (Monthly logins, Aging Summary, Locked out users)
Summary of API methods
The following lists identify the methods that are available in the MembershipManagement, RolesManagement, ProfileManagement and HealthMonitoring Modules.
Each of these is available as a static method that you can call like this:
MembershipManagement.ChangePassword();
In addition, each method can be called remotely via an HTTP request like this:
http://my-controller/ChangePassword?username=joe&password=abc123
Membership Management
MembershipManagement.ChangePassword
MembershipManagement.ChangePasswordQuestionAndAnswer
MembershipManagement.ChangeUserComments
MembershipManagement.ChangeUserEmail
MembershipManagement.ChangeUsername
MembershipManagement.ChangeUserProfile
MembershipManagement.ChangeUserRoles
MembershipManagement.CreateUser
MembershipManagement.DeleteUser
MembershipManagement.FindMembershipUsers
MembershipManagement.GetCumulativeMonthlyEnrollmentSummary
MembershipManagement.GetLastLoggedInSummary
MembershipManagement.GetLatestLogins
MembershipManagement.GetMemberInfo
MembershipManagement.GetMembershipAgingSummary
MembershipManagement.GetMembershipSummary
MembershipManagement.GetNewestMembers
MembershipManagement.GetNewMemberInfo
MembershipManagement.GetPassword
MembershipManagement.ResetPassword
MembershipManagement.ToggleUserApproved
MembershipManagement.UnlockUser
Roles Management
RolesManagement.CreateRole
RolesManagement.DeleteRole
RolesManagement.GetAllRoles
RolesManagement.GetRoleMembers
RolesManagement.GetRoles
RolesManagement.GetRolesSummary
RolesManagement.GetUserRoles
RolesManagement.SetUserRoles
RolesManagement.UpdateRole
RolesManagement.UpdateRoleMembership
Profile Management
ProfileManagement.GetProfileInfo
ProfileManagement.GetProfilePropertyValues
ProfileManagement.SaveProfilePropertyValues
Health Monitoring (Event Monitoring)
EventMonitoring.DeleteWebEvents
EventMonitoring.GetWebEvent
EventMonitoring.GetWebEvents
Flexible architecture
The Web Management API was designed to deliver "instant gratification" for the majority of developers who use the built-in "Sql Providers" but also to allow for nearly unlimited flexibility for those who use custom membership providers or need to incorporate custom business logic.
Events
Each method in the Web Management API raises events for which you can add event handlers. Events such as "ChangingPassword" give you the user name, password and a "Cancel" flag that let you decide whether to abort the request. Events such as "DeletedUser" let you know when to clean up data in a related system.
Custom Providers
Each of the "Modules" is built using one or more components called "Providers" that can be swapped out with your own implementation. The Providers that are built-into the Web Management API are designed to work with Microsoft's SqlMembershipProvider, SqlRolesProvider and SqlProfileProvider or to connect directly to known (Asp.Net) tables such as "aspnet_WebEvent_Events" in a Sql Server database. If you are not using the Sql-based providers or just want more control, you can easily swap out our provider with your own.