Los estimados expertos,
I tienen una aplicación web del aspx que requiera para funcionar más de 8 horas fuera restauran o logout. Por favor ningunos acoplamientos pero yo quisiéramos saber el código de alguÌn VB.NET o el descanso de sesión del Javascript que advierte la escritura móvil que dice: “No ha habido actividad por algún tiempo. Chascar “ACEPTABLE” si usted desea continuar su sesión, o tecleo “cancelación” para logout. Para su seguridad si usted no puede responder a este mensaje en el plazo de 2 minutos le apagarán automáticamente” y vuelve a dirigir a login.aspx después de que expire el descanso. el
I ha estado haciendo esto por 2 días sin ninguÌn éxito, también yo le quisiera podía considerar mi código abajo: web.config, global.asax, login.vb para su revisión y su ayuda es realmente mucho elogiosos. Thanks.
WEB.CONFIG
¿encoding= " UTF-8” del version= " 1.0” del xml? ¡> : Como una alternativa a la mano que corrige este archivo usted puede utilizar la herramienta del admin de la tela del para configurar los ajustes para su uso. Use la opción de configuración de Website->Asp.Net en la lista completa visual de Studio. A de ajustes y de comentarios se puede encontrar en los ments del machine.config.com situados generalmente en el \ Windows \ Microsoft.Net \ Framework \ v2.x \ de los Config--name= " system.web.extensions” type= " System.Web.Configuration del del >
. SystemWebExtensionsSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, type= " scripting” " System.Web.Configuration del name= " del de PublicKeyToken=31BF3856AD364E35. ScriptingSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 " > < nombre de sección = " scriptResourceHandler” type= " System.Web.Configuration. ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, webServices falsos” type= " System.Web.Configuration del name= " del del” requirePermission= " de PublicKeyToken=31BF3856AD364E35” allowDefinition= " MachineToApplication”. ScriptingWebServicesSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 " > < nombre de sección = " jsonSerialization” type= " System.Web.Configuration. ScriptingJsonSerializationSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, allowDefinition= falso " Everywhere”/> Application”/> e” type= " System.Web.Configuration. ScriptingAuthenticationServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, requirePermission= allowDefinition= " falso” " MachineToApplication”/> 64E35” /> < nombre de sección = " roleService” type= " System.Web.Configuration. ¡ScriptingRoleServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, requirePermission= allowDefinition= " falso” " MachineToApplication”/> 64E35”/> --¡> de los " verdad” insertar símbolos del del depuración en la página compilada. Porque este afecta a funcionamiento, fijar este valor para verdad solamente el durante opciones de development.
Visual Basic: Strict= determinado del " verdad” rechazar todo el tipo de datos de las conversiones donde la pérdida de los datos puede ocurrir. Explicit= determinado del " verdad” forzar la declaración de todo el variables. --batchTimeout= " 43200 defaultLanguage= " verdadero” " VB” numRecompilesBeforeAppRestart= " del del debug=” del explicit= " 15 assembly= " falso " " System.Core, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” assembly= " System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” assembly= " System.Data.DataSetExtensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” assembly= " System.Web.Extensions del del del > ” del strict= del del del . Design, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” assembly= " System.Design, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” assembly= " System.Windows.F del />orms, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” assembly= " System.Drawing.Design, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” assembly= " Microsoft.Office.Interop.Excel, Version= 11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” assembly= " System.Xml, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” assembly= " System.DirectoryServices, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” assembly= " System.DirectoryServices.Protocols, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” assembly= " System.ServiceProcess, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” assembly= " System.Web.RegularExpressi del del de/> del del del de/> del de/> />ons, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” oficina del assembly= del ", Version= 11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” accesibilidad del assembly= del ", Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A” assembly= " CrystalDecisions.CrystalReports del . Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304” assembly= " CrystalDecisions.Enterprise.Framework, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304” assembly= " CrystalDecisions.ReportAppServer.ClientDoc, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304” assembly= " CrystalDecisions.Shared, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304” assembly= " CrystalDecisions.Enterprise.InfoStore, Version=10.5.3700.0 del del del del , Culture=neutral, PublicKeyToken=692fbea5521.ReportSource, Version=10.5.3700.0, Culture=neutral,” assembly= " Microsoft.Office.Tools.Excel.v9.0, Version= 9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A/>e1304 PublicKeyToken=692fbea5521e1304 PublicKeyToken=692fbea5521e1304” sistema” namespace= " System.Collections” namespace= " System.Collections del del del /> del de/> del namespace= del del . Generic” namespace= " System.Collections del . Specialized” namespace= " System.Configuration” namespace= " System.Text” namespace= " System.Text.Reg del del />ularExpressions” namespace= " System.Linq” namespace= " System.Xml.Linq” namespace= " System.Xml” namespace= " System.Web” namespace= " System.Web.Caching” namespace= " System.Web.SessionState” namespace= " System.Web.Security” namespace= " System.Web.Profile” namespace= " System.Web.UI” namespace= " System.Web.UI.WebControls” namespace= " System.Web.UI.WebControls.WebParts " namespace= " System.Web.UI.HtmlControls” namespace= " System.DirectoryServices " tagPrefix= " ASP del del del del del del del del del del del del /> del del del /> ¡tagPrefix= " ajaxToolkit”/> it” del” assembly= " de AjaxControlToolkit del namespace= " del del” assembly= " System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” del” namespace= " System.Web.UI.WebControls del tagPrefix= " ASP del del” assembly= " System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” del” namespace= " System.Web.UI/> la sección del permite el de la configuración del modo de la autentificación de la seguridad usado por el ASP.NET para identificar a un usuario entrante. del timeout= " 480 " --¿el enabled= del mode= " verdadero " del er> " forma " el timeout= " del loginUrl= " login.aspx de los del > 540” protection= "” del name=” .authCookie todo el””/" users= " del users= del de/>
"” del path= del slidingExpiration= cookieless= " UseCookies " timeout= del
" 540 *? ¡“/> del de/> de/> --mode= " RemoteOnly” de los del > defaultRedirect= " GenericErrorPage.htm " statusCode= del " 403” redirect= " NoAccess.htm” statusCode= del " 404” redirect= " FileNotFound.htm” de/> del del rvices” del verb= " del ” del path= " *.asmx” *” del validate=. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” type= falso " System.Web.Script.Services del” validate= " de *_AppService.axd del” path= " del verb= " del *”. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, Validate= enabled= " falso” " del” type= " System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” del” path= " ScriptResource.axd de la CABEZA del verb= " del de PublicKeyToken=31BF3856AD364E35” CONSEGUIR, del defaultProvider= " MyXmlSiteMapProvider del del” type= " System.Web.Handlers.ScriptModule, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” de ScriptModule del name= " del de/> verdad " description= " abastecedor de MyXmlSiteMapProvider el” del name= " del del > de SiteMap que lee adentro archivos de .sitemap.” type= " System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d de/> "; cs; csharp " extension= " .cs " warningLevel= " 4 " type= " Microsoft.CSharp.CSharpCodeProvider, sistema, Version= 2.0.0.0, Culture=neutral, vb falso del language= del " del " value= " de WarnAsError " del name= " del del name= " del de PublicKeyToken=b77a5c561934e089 " CompilerVersion " value= " v3.5 "; vbs; visualbasic; ¡el warningLevel= " del " extension= " .vb del vbscript " 4 value= " de OptionInfer del name= " del del " value= " v3.5 " de CompilerVersion del name= " del del " type= " Microsoft.VisualBasic.VBCodeProvider, sistema, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 " verdad " value=/> del name= del del name= " del del name= " del del name= " del de/> " del preCondition= " de " ScriptModule del name= del del name= " del de/> del validateIntegratedModeConfiguration= " del " ScriptModule type= " System.Web.Handlers.ScriptModule, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, de/> del ScriptHandlerFactoryrated/>tory-Integ64E35 PublicKeyToken=31BF3856AD3er " managedHandliptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 " integratedMode " type= " System.Web.Script.Services del " preCondition= " de *_AppService.axd del " path= " del " verb= " de ScriptHandlerFactoryAppServices del name= " del *. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 " integratedMode " verb= " del " preCondition= " de ScriptResource del name= " del CONSIGUE, urna del xmlns= de/> " del " path= " de la CABEZA " ScriptResource.axd el " type= " System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35: esquemas-microsoft-com: el asm.v1 " el name= " System.Web.Extensions el " del del > publicKeyToken= " 31bf3856ad364e35 " oldVersion= " 1.0.0.0 - 1.1.0.0 " del newVersion= " 3.5.0.0 " el name= " System.Web.Extensions.Design el " del de/> publicKeyToken= " 31bf3856ad364e35 " oldVersion= " 1.0.0.0 del - 1.1.0.0 " newVersion= " 3.5.0.0 " allowOverride= del " verdad " el server=AVC del " value= " de ConnectionString del key= " del del > ; database=NNN; uid=User; pwd=user " key= " ActiveDirectoryConn " value= " LDAP de/>
et " server=AVC del " value= " de ConnectionString del name= " del de/> ; database=NNN; uid=User; el
de las manijas btnLogin.Click
del btnLogin_Click de/>
LOGIN.VB
Protected del pwd=user " (remitente de ByVal como objeto, ByVal e como System.EventArgs) amortigua el adPath como secuencia = “LDAP: //DC=cool, de DC=net " amortiguan el adAuth como nuevo Try de SITE.LDAPAuthentication (adPath) si es verdad = adAuth.IsAuthenticated (txtDomain.Text, txtusername. El texto, txtPassword.Text) Then
'consigue a de los papeles de usuario grupos déviles como la secuencia = el
de adAuth.GetGroups () 'crean el boleto, y agrega el isCookiePersistent dévil de groups. como boleano = authTicket dévil de chkPersist.Checked mientras que el nuevo
de FormsAuthenticationTicket (1, txtUsername.Text, DateTime.Now, DateTime.Now.AddHours (12), isCookiePersistent, grupos) 'cifra el encryptedTicket dévil de ticket. mientras que el
de la secuencia = de FormsAuthentication.Encrypt (authTicket) 'crea a la galleta, y entonces agrega el boleto cifrado a la galleta como authCookie dévil de data. como nuevo HttpCookie (FormsAuthentication. FormsCookieName,
del encryptedTicket) 'si expira ChkPersist se comprueba 'para que el hojeador escriba el tiempo de la expiración de la galleta tiene que ser el “no confunde FormsAuthenticationTicket.Expire con la galleta el del tiempo si Then extremo If
de authCookie.Expires = de authTicket.Expiration “agrega la galleta a las galletas salientes collection. HttpContext.Current.Response. El
de Cookies.Add (authCookie) “usted puede volver a dirigir now. “Response.Redirect (FormsAuthentication.GetRedirectUrl (txtUsername.Text, falso)) Response.Redirect (FormsAuthentication.GetRedirectUrl (txtUsername.Text, chkPersist.Checked))el Else de “Response.Redirect (“default.aspx”) errorLabel.Text = “autentificación no tuvo éxito. Comprobar el nombre y la contraseña de usuario. Cerciorarse de que su cerradura de casquillos en su teclado esté apagada. “retén de If del final del ex como Exception errorLabel.Text = “autenticidad del error. ” + ex. Uso Language= " VB " código de Sub
GLOBAL.ASAX
<%@ del final del de Try
del final de Message del del " servidor " del runat= de %>
/>
secundario” que funciona en código secundario del del del Application_End (remitente de Sub del final del startup del uso de ByVal como objeto, ByVal e como EventArgs)” el código que funciona en Sub shutdown secundario el” que funciona cuando un occurs de Sub
Session_Start (remitente del final de/> de ByVal como objeto, ByVal e como EventArgs) el” código que funciona cuando que una nueva sesión es fuegos del quest Application_AuthenticateRe “el del Application_BeginRequest (remitente de Sub del final del del de Sub
Session_End (remitente del final de Session.Timeout = de 1 de ByVal como objeto, ByVal e como EventArgs) de ByVal como objeto, ByVal e como EventArgs)” enciende al principio de cada/>/> request l como objeto, ByVal e como EventArgs)/> secundario” sobre intentar authenticar el use
amortigua el cookieName como secuencia = FormsAuthentication.FormsCookieName amortiguan el authCookie como el del de
de HttpCookie = de Context.Request.Cookies (cookieName) si el authCookie no es que nada Then 'allí no es ninguÌn authTicket dévil del de If del final de la autentificación/del authorization cookie. Return como el authTicket de FormsAuthenticationTicket = de Nothing Try = FormsAuthentication.Decrypt (authCookie. Retén del del valor) ex como excepción del tiro de Exception nueva (ex. El del mensaje) “escribe la excepción a la galleta del acontecimiento Log. ” el si no (authTicket.IsPersistent) Then del de Try del final de Return si (authTicket.Expired) Then 'falló al extremo If Return El del del del de If del final de/> 'cuando el boleto fue creado, la característica de UserData fue asignado el a 'cadena pipa-delimitada de grupos déviles del grupo names. como secuencia () = authTicket.UserData.Split (el carbón de leña del New () {“| el " de c}) 'crea una identificación dévil de Identity. como nuevo del de System.Security.Principal.GenericIdentity (authTicket.Name, “LDAPAuthentication”) 'este principal que los flujos a través del request. amortiguan el principal mientras que nuevo System.Security.Principal.) fijación del ncipal/>GenericPri 'el nuevo objeto principal al del objeto de HttpContext Context.User = _path privado público de LDAPAuthentication de la clase del
LDAPAuthentication.VB
Imports System Imports Microsoft.VisualBasic Imports System.DirectoryServices Imports System.Exception
Namespace SITE
de Sub del final del del del principal
como _filterAttribute privado de String como nuevo secundario público de String
(Trayectoria de ByVal como secuencia) el _path del = la función pública IsAuthenticated (dominio de Sub
del final del path de ByVal como username de la secuencia, de ByVal como pwd de la secuencia, de ByVal como secuencia) como Boolean
amortiguan el domainAndUsername como secuencia = dominio +” \ “+ entrada dévil del username mientras que nuevo (_path, domainAndUsername, pwd) lazo de Try /> el 'al AdsObject nativo para forzar authentication. amortigua el obj como objeto = la búsqueda dévil de entry.NativeObject
como nuevo
de DirectorySearcher (entrada) search.SearchScope = búsqueda de SearchScope.Subtree . Filtro =” sAMAccountName (de CN= " + username + ") “
' = nombre. El viejo nombre de conexión del NT 4.0, debe ser único en el dominio. Puede ser confundido con el NC. búsqueda del . El filtro =” (SAMAccountName= " + username + ") el del “ search.PropertiesToLoad.Add (“NC”) amortigua resultado como
de SearchResult = de search.FindOne () si el resultado no es nada Then
False /> de vuelta 'la nueva trayectoria al usuario en el _path = el resultado de directory. . _filterAttribute de Path = DirectCast (resultado. Retén del de Properties (“NC”) (0), de la secuencia) ex como tiro nuevo System.Exception (“usuario de autenticidad de System.Exception del error. ” + ex. La función pública de vuelta GetGroups de Function
del final de Try
True del final del del mensaje) () como String
amortigua búsqueda mientras que nueva búsqueda del de DirectorySearcher (_path). El filtro = “(cn=” y _filterAttribute y ") “(el
“del sAMAccountname” “del memberOf”) de/> d search.PropertiesToLoad.Ad de 'search.PropertiesToLoad.Add () amortigua groupNames como nuevo resultado dévil del
Try de System.Text.StringBuilder () como SearchResult = propertyCount dévil del de search.FindOne () como número entero = resultado. Características (“memberOf”). Count amortigua el dn como equalsIndex dévil de String como número entero, commaIndex como Integer
amortigua el propertyCounter como el número entero = 0 mientras que propertyCounter < el propertyCount dn = DirectCast (resultado. equalsIndex del de Properties (“memberOf”) (propertyCounter), de la secuencia) = dn.IndexOf (“=”, commaIndex de 1) = dn.IndexOf (”, “, 1) si -1 = extremo de vuelta If groupNames.Append (dn de Then Nothing del equalsIndex. groupNames.Append de Substring ((equalsIndex + 1), (commaIndex - equalsIndex) - 1)) (“|") System.Math.Max (System.Threading. Interlocked. Increment (propertyCounter), propertyCounter - retén de While del final de 1) ex como tiro nuevo System.Exception (“error de Exception que obtiene nombres de grupo. ” + ex. Extremo de vuelta Class End Namespace de Function del final del de Try groupNames.ToString del final del del mensaje) ()
class= del
|