Hola gente resulta que en mi aplicacion decidimos utilizar autenticacion de
forms validando mediante active directory, pues bien si tratas de entrar al
sitio el te pide que te auntentiques y si eres usuario del directorio activo.
efectivamente no puedes entrar. El problema es que yo tengo algunas carpetas
donde solo puedes entrar si eres de un grupode usuarios determinados y si no,
no puedes; pero esto ultimo se lo está saltando es decir solo esta validando
que seas del directorio activo, pero no que no seas del grupo autorizado. en
fin aca les mando el codigo de autenticacion y el web.config hay algo que esta
mal y no lo sé. muchas gracias y nos leemos.
este es el codigo de la página web de autenticacion
Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
Dim domainName As String =
ConfigurationManager.AppSettings("Dominio").ToString()
If (IsAuthenticated(domainName, Me.Login1.UserName.ToString().Trim,
Me.Login1.Password.ToString().Trim) = True) Then
FormsAuthentication.RedirectFromLoginPage(Me.Login1.UserName.ToString().Trim,
False)
Else
usuario.Muestra_mensaje_alerta(" Usuario o Contraseñas Incorrectos. Reintente
otra vez. ", Me)
End If
End Sub
Public Function IsAuthenticated(ByVal domain As String, ByVal username As
String, ByVal pwd As String) As Boolean
Dim _path As String
Dim _filterAttribute As String
Dim servername As String = ConfigurationManager.AppSettings("servidor").ToString
'Whether Authenticated User or Not
domain = domain.Replace("LDAP://", "")
domain = domain.Replace(".cu", "")
Dim domainAndUsername As String = domain + "\" + username
Dim entry As New DirectoryEntry("LDAP://" + servername, domainAndUsername, pwd)
Try
Dim obj As Object = entry.NativeObject
Dim search As New DirectorySearcher(entry)
search.Filter = "(SAMAccountName=" + username + ")"
search.PropertiesToLoad.Add("cn")
Dim result As SearchResult = search.FindOne
If result Is Nothing Then
Return False
End If
_path = result.Path
_filterAttribute = CType(result.Properties("cn")(0), String)
Catch ex As Exception
Return False
End Try
Return True
End Function
este es el web.config de la aplicacion
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<sectionGroup name="microsoft.web"
type="Microsoft.Web.Configuration.MicrosoftWebSectionGroup">
<section name="scripting"
type="Microsoft.Web.Configuration.ScriptingSectionGroup,
Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<section name="converters" type="Microsoft.Web.Configuration.ConvertersSection"
requirePermission="false"/>
<section name="webServices"
type="Microsoft.Web.Configuration.WebServicesSection"
requirePermission="false"/>
<section name="profileService"
type="Microsoft.Web.Configuration.ProfileServiceSection"
requirePermission="false"/>
</sectionGroup>
</configSections>
<microsoft.web>
<converters>
<add type="Microsoft.Web.Script.Serialization.Converters.DataSetConverter"/>
<add type="Microsoft.Web.Script.Serialization.Converters.DataRowConverter"/>
<add type="Microsoft.Web.Script.Serialization.Converters.DataTableConverter"/>
</converters>
<webServices enableBrowserAccess="true"/>
</microsoft.web>
<appSettings>
<add key="localhost.WebService"
value="http://servidor/Egedch/WebService/WebService.asmx"/>
<add key="dominio" value="LDAP://gedich.cu"/>
<add key="servidor" value="192.168.1.1"/>
<add key="report"
value="http://servidor/ReportServer/Pages/ReportViewer.aspx?%2fGEDICH%2f"/>
<add key="reportserver" value="http://servidor/ReportServer/"/>
<add key="reportpathccontrol" value="/GEDICH/CCONTROL/"/>
</appSettings>
<connectionStrings>
<add name="GEDICH" connectionString="Data Source=servidor ;Initial
Catalog=Database;Persist Security Info=True;User ID=gedich;Password=gedich;
Connect Timeout=30" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<authentication mode="Forms">
<forms loginUrl="login.aspx" name="adAuthCookie" timeout="60" path="/">
</forms>
</authentication>
<sessionState timeout="40"/>
<httpRuntime executionTimeout="500"/>
<pages>
<controls>
<add tagPrefix="asp" namespace="Microsoft.Web.UI"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="Microsoft.Web.UI.Controls"
assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
<globalization culture="es-MX" uiCulture="es-MX"/>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*"
type="Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" type="Microsoft.Web.Services.ScriptHandlerFactory"
validate="false"/>
<add verb="*" path="atlasbatchcall.axd"
type="Microsoft.Web.Services.MultiRequestHandler" validate="false"/>
<add verb="*" path="atlasglob.axd"
type="Microsoft.Web.Globalization.GlobalizationHandler" validate="false"/>
<add verb="*" path="*.asbx" type="Microsoft.Web.Services.ScriptHandlerFactory"
validate="false"/>
</httpHandlers>
<compilation debug="true" defaultLanguage="c#">
<assemblies>
<add assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0,
Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=B77A5C561934E089"/></assemblies>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider,
Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
<add extension=".asbx" type="Microsoft.Web.Services.BridgeBuildProvider"/>
</buildProviders>
</compilation>
</system.web>
<location path="Nomencladores" allowOverride="true"
inheritInChildApplications="true">
<system.web>
<authorization>
<allow roles="gedich\Aplicacion_GEDICH"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="ccontrol" allowOverride="true"
inheritInChildApplications="true">
<system.web>
<authorization>
<allow roles="gedich\Aplicacion_GEDICH"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="grupos_electrogenos" allowOverride="true"
inheritInChildApplications="true">
<system.web>
<authorization>
<allow roles="gedich\Aplicacion_GEDICH"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
<location path="Personal" allowOverride="true"
inheritInChildApplications="true">
<system.web>
<authorization>
<allow roles="gedich\Aplicacion_GEDICH"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
</configuration>