DotNetNuke User API webservice – manipulate user through API
I currently manage several systems using DotNetNuke. This code is a long time ago (2010 must be) back then it was online to find out if there is any solution to support the user manipulation of the dotnetnuke portal through API or not (Operator admin from Local system. After searching for a while, I can't see it. Finally source DotNetNuke to read and build up the webservice and some desired functions. Share out here so that you are having trouble with this problem:
If you use it for online portal or need security API, add security check code to prevent unauthorized access to interfere with unwanted users.
Create new users on the DotNetNuke Portal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | '' '<summary> '' 'Create DotNetNuke User '' '</summary> '' '<param name = "portalId"> </param> '' '<param name = "userName"> </param> '' '<param name = "pwd"> </param> '' '<param name = "email"> </param> '' '<returns> </returns> '' '<remarks> </remarks> Public Function CreateUser (portalId As Integer, userName As String, pwd As String, email As String) As DotNetNuke.Security.Membership.UserCreateStatus Dim objInfo As New UserInfo With objInfo .PortalID = portalId .Username = userName .DisplayName = userName .Membership.Password = pwd .Email = email End With Return UserController.CreateUser (objInfo) End Function |
Get user information
1 2 3 4 5 6 7 8 9 10 11 12 | '' '<summary> '' 'Get UserInfo '' '</summary> '' '<param name = "portalId"> </param> '' '<param name = "userName"> </param> '' '<returns> </returns> '' '<remarks> </remarks> Public Function GetUserInfo (portalId As Integer, userName As String) As UserInfo Dim objUserInfo As UserInfo objUserInfo = UserController.GetUserByName (portalId, userName) Return objUserInfo End Function |
Change user password on DotNetNuke portal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | '' '<summary> '' Change DotNetNuke User Password '' '</summary> '' '<param name = "userName"> </param> '' '<param name = "oldPassword"> </param> '' '<param name = "newPassword"> </param> '' '<returns> </returns> '' '<remarks> </remarks> Public Function ChangePassword (userName As String, oldPassword As String, newPassword As String) As Boolean Dim result As Boolean Try Dim user = GetMembershipUser (userName) 'Force unlock user If (user.IsLockedOut) Then user.UnlockUser () End If result = user.ChangePassword (oldPassword, newPassword) Catch ex As Exception result = False End Try Return result End Function #Region "Private Functions" 'Please reference: Library Providers MembershipProviders AspNetMembershipProvider AspNetMembershipProvider.vb '' '<summary> '' ' '' '</summary> '' '<param name = "userName"> </param> '' '<returns> </returns> '' '<remarks> </remarks> Private Function GetMembershipUser (userName As String) As MembershipUser Dim cacheKey As String = String.Format ("MembershipUser_ {0}", userName.ToString ()) Return CBO.GetCachedObject (Of MembershipUser) (New CacheItemArgs (cacheKey, _ DataCache.UserCacheTimeOut, _ DataCache.UserCachePriority, _ userName), _ AddressOf GetMembershipUserCallBack) End Function Private Shared Function GetMembershipUserCallBack (cacheItemArgs As CacheItemArgs) As Object Dim userName = DirectCast (cacheItemArgs.ParamList (0), String) Return Membership.GetUser (userName) End Function #End Region |
Reset user password on DotNetNuke portal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | '' '<summary> '' Reset the DotNetNuke User Password '' '</summary> '' '<param name = "userName"> </param> '' '<param name = "newPwd"> </param> '' '<returns> </returns> '' '<remarks> </remarks> Public Function ResetPassword (userName As String, newPwd As String) As Boolean Dim result As Boolean Try Dim user = GetMembershipUser (userName) If (user.IsLockedOut) Then user.UnlockUser () End If Dim oldPassword = user.GetPassword () result = user.ChangePassword (oldPassword, newPwd) Catch ex As Exception result = False End Try Return result End Function #Region "Private Functions" 'Please reference: Library Providers MembershipProviders AspNetMembershipProvider AspNetMembershipProvider.vb '' '<summary> '' ' '' '</summary> '' '<param name = "userName"> </param> '' '<returns> </returns> '' '<remarks> </remarks> Private Function GetMembershipUser (userName As String) As MembershipUser Dim cacheKey As String = String.Format ("MembershipUser_ {0}", userName.ToString ()) Return CBO.GetCachedObject (Of MembershipUser) (New CacheItemArgs (cacheKey, _ DataCache.UserCacheTimeOut, _ DataCache.UserCachePriority, _ userName), _ AddressOf GetMembershipUserCallBack) End Function Private Shared Function GetMembershipUserCallBack (cacheItemArgs As CacheItemArgs) As Object Dim userName = DirectCast (cacheItemArgs.ParamList (0), String) Return Membership.GetUser (userName) End Function #End Region |
Full source can be downloaded at: https://gist.github.com/xonv/8542cd2dae096f3c32ab