Re: intergrating with custom login (VB.NET)

  •  10-04-2005, 5:24 PM

    Re: intergrating with custom login (VB.NET)

    Paul,
     
    Are you familar with dotnetnuke? A open source portal written with VB.NET.
     
    Here is the provider for DNN.
     
    DotNetNukeDataProvider.vb
     
     Public Class DotNetNukeDataProvider
        Inherits CuteSoft.Chat.DataProvider
        Protected Function GetUser(ByVal uniquename As String) As DotNetNuke.Entities.Users.UserInfo
            Dim userid As Integer = Integer.Parse(uniquename)
            Dim ps As DotNetNuke.Entities.Portals.PortalSettings = CType(System.Web.HttpContext.Current.Items("PortalSettings"), DotNetNuke.Entities.Portals.PortalSettings)
            Return New DotNetNuke.Entities.Users.UserController().GetUser(ps.PortalId, userid)
        End Function
        Public Overrides Function GetUserDisplayName(ByVal useruniquename As String) As String
            Return GetUser(useruniquename).UserName
        End Function
        Public Overrides Function IsAdministrator(ByVal useruniquename As String) As Boolean
            Dim user As DotNetNuke.Entities.Users.UserInfo = GetUser(useruniquename)
            If user.IsSuperUser Then
                Return True
            End If
            Dim ps As DotNetNuke.Entities.Portals.PortalSettings = CType(System.Web.HttpContext.Current.Items("PortalSettings"), DotNetNuke.Entities.Portals.PortalSettings)
            Dim roles() As String = New DotNetNuke.Security.Roles.RoleController().GetRolesByUser(user.UserID, ps.PortalId)
            Return Array.IndexOf(roles, "Administrators") <> -1
            'For Each roleid As String In roles
            '    Dim role As DotNetNuke.Security.Roles.RoleInfo = New DotNetNuke.Security.Roles.RoleController().GetRole(Integer.Parse(roleid), ps.PortalId)
            '    If role.RoleName = "Administrators" Then
            '        Return True
            '    End If
            'Next
            'Return False
        End Function
        Public Overrides Function ListUserUniqueName() As String()
            Dim ps As DotNetNuke.Entities.Portals.PortalSettings = CType(System.Web.HttpContext.Current.Items("PortalSettings"), DotNetNuke.Entities.Portals.PortalSettings)
            Dim names As New System.Collections.ArrayList
            For Each user As DotNetNuke.Entities.Users.UserInfo In New DotNetNuke.Entities.Users.UserController().GetUsers(ps.PortalId, False, False)
                names.Add(user.UserID.ToString())
            Next
            Return CType(names.ToArray(GetType(String)), String())
        End Function
        Public Overrides Function SearchUserUniqueNameByDisplayName(ByVal userDisplaName As String) As String()
            Return SearchUserUniqueNamesByProperty("FirstName", userDisplaName)
        End Function
        Public Overrides Function GetUserPropertyCategories() As CuteSoft.Chat.UserCategory()
            Dim categories() As CuteSoft.Chat.UserCategory = {New CuteSoft.Chat.UserCategory("UserName", "UserName"), New CuteSoft.Chat.UserCategory("Country", "Country")}
            Return categories
        End Function
        Public Overrides Function SearchUserUniqueNamesByProperty(ByVal category As String, ByVal keyword As String) As String()
            Dim ps As DotNetNuke.Entities.Portals.PortalSettings = CType(System.Web.HttpContext.Current.Items("PortalSettings"), DotNetNuke.Entities.Portals.PortalSettings)
            keyword = keyword.ToLower()
            Dim names As New System.Collections.ArrayList
            For Each user As DotNetNuke.Entities.Users.UserInfo In New DotNetNuke.Entities.Users.UserController().GetUsers(ps.PortalId, False, False)
                Dim prop As String
                Select Case category
                    Case "FirstName"
                        prop = user.FirstName
                        Exit Select
                    Case "UserName"
                        prop = user.Username
                        Exit Select
                    Case "Country"
                        prop = user.Profile.Country
                        Exit Select
                End Select
                If prop <> Nothing Then
                    If prop.ToLower().IndexOf(keyword) <> -1 Then
                        names.Add(user.UserID.ToString())
                    End If
                End If
            Next
            Return CType(names.ToArray(GetType(String)), String())
        End Function

    End Class
    DotNetNukeUserAdapter.vb

    Public Class DotNetNukeUserAdapter
        Inherits CuteSoft.Chat.UserAdapter
        Public Overrides Function GetUserUniqueName(ByVal context As System.Web.HttpContext) As String
            If Not context.Request.IsAuthenticated Then
                Return Nothing
            End If
            'DotNetNuke3 use username..
            Dim ps As DotNetNuke.Entities.Portals.PortalSettings = CType(System.Web.HttpContext.Current.Items("PortalSettings"), DotNetNuke.Entities.Portals.PortalSettings)
            Return New DotNetNuke.Entities.Users.UserController().GetUserByUsername(ps.PortalId, context.User.Identity.Name).UserID.ToString()
        End Function
    End Class
     
    Hope it helps.
     
    Let me know if you have any further questions.
     
     

    asp.net Chat http://cutesoft.net/ASP.NET+Chat/default.aspx
    Web Messenger: http://cutesoft.net/Web-Messenger/default.aspx
    asp.net wysiwyg editor: http://cutesoft.net/ASP.NET+WYSIWYG+Editor/default.aspx
    asp wysiwyg html editor: http://cutesoft.net/ASP
    asp.net Image Gallery: http://cutesoft.net/ASP.NET+Image+Gallery/default.aspx
    Live Support: http://cutesoft.net/live-support/default.aspx

View Complete Thread