Search code examples
asp.netvb.netsecuritymembershiproleprovider

ASP.NET Role Manager Feature Has Not Been Enabled


I'm trying to create a routine in my asp.net's main page that will see if the current user is a member of a Windows domain group. The site is hosted in IIS and is visible through our intranet.

GlenFerrieLive listed this code (which I'd like to use) in an earlier post:

    UserName = System.Environment.UserName

    If Roles.IsUserInRole(UserName, "MyDomain\MyGroup") Then
        Dim UserExists As Boolean = True
    End If

When trying that code, I got the above-mentioned error. So I plugged in the roleManager tag in my Web.config like so:

<roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="ActiveDirectoryMembershipProvider" cookieName=".ASPXROLES" cookiePath="/" cookieTimeout="480" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieProtection="All" />

Problem is, now I'm getting the configuration error 'Default Role Provider could not be found'.

How can I get around this? I just need to see if the current user exists in a specific domain group.

Any help would be greatly appreciated.

Thanks,

Jason


Solution

  • I ended up using this:

    Private Function ValidateActiveDirectoryLogin(ByVal Domain As String, ByVal Username As String, ByVal Password As String) As Boolean
        Dim Success As Boolean = False
        Dim Entry As New System.DirectoryServices.DirectoryEntry("LDAP://" & Domain, Username, Password)
        Dim Searcher As New System.DirectoryServices.DirectorySearcher(Entry)
        Searcher.SearchScope = DirectoryServices.SearchScope.OneLevel
        Try
            Dim Results As System.DirectoryServices.SearchResult = Searcher.FindOne
            Success = Not (Results Is Nothing)
        Catch
            Success = False
        End Try
        Return Success
    End Function 
    

    Worked like a charm when this was in my web.config:

        <authentication mode="Windows"/>
    
        <roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="AspNetWindowsTokenRoleProvider" cookieName=".ASPXROLES" cookiePath="/" cookieTimeout="480" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieProtection="All" />