Les chers experts, le
I ont une application Web d'aspx qui exige pour fonctionner plus de 8 heures en dehors régénèrent ou se déconnectent. Svp aucun lien mais je ne voudrais connaître le code d'un certain VB.NET ou le manuscrit automatique d'avertissement de temps mort de session de Javascript qui indique : « Il n'y a eu aucune activité pendant quelque temps. Cliquer « CORRECT » si vous souhaitez continuer votre session, ou clic « annulation » pour se déconnecter. Pour votre sécurité si vous ne pouvez pas répondre à ce message dans un délai de 2 minutes vous serez déconnecté automatiquement » et réorientez à login.aspx après que le temps mort expire. le
I avaient fait ceci pendant 2 jours sans n'importe quel succès, également je vous voudrait a pu voir mon code ci-dessous : web.config, global.asax, login.vb pour votre revue et votre aide est vraiment beaucoup élogieux. Thanks.
WEB.CONFIG
< ! -- Note du : Comme une alternative à la main éditant ce dossier vous peut utiliser l'outil d'admin de Web du pour configurer des arrangements pour votre application. Use l'option de configuration de Website->Asp.Net dans la pleine liste visuelle de Studio. A d'arrangements et de commentaires peut être trouvé dans des ments du machine.config.com habituellement situés dans le \ Windows \ Microsoft.Net \ Framework \ v2.x \ de config--name= " system.web.extensions » type= " System.Web.Configuration de du >
. SystemWebExtensionsSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, type= " scripting System.Web.Configuration " de name= " de de PublicKeyToken=31BF3856AD364E35 ». ScriptingSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 " > < nom de section = " scriptResourceHandler » type= " System.Web.Configuration. ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, webServices faux » type= " System.Web.Configuration » de name= " de de » requirePermission= " de PublicKeyToken=31BF3856AD364E35 » allowDefinition= " MachineToApplication. ScriptingWebServicesSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 " > < nom de section = " jsonSerialization » type= " System.Web.Configuration. ScriptingJsonSerializationSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, allowDefinition= " faux Everywhere »/> Application »/> e » type= " System.Web.Configuration. ScriptingAuthenticationServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, requirePermission= allowDefinition= " " faux » MachineToApplication »/> 64E35 » /> < nom de section = " roleService » type= " System.Web.Configuration. ScriptingRoleServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, requirePermission= allowDefinition= " " faux » MachineToApplication »/> 64E35 »/> < ! -- --> < ! --mode= "OFF"/> de < ! -- Debug= réglé de compilation du " vrai » pour insérer des symboles du d'élimination des imperfections dans la page compilée. Puisque ce affecte l'exécution, placer cette valeur pour rectifier seulement le pendant les options de development.
Visual Basic : Strict= réglé du " vrai » pour rejeter tout le données de conversions de types où la perte de données peut se produire. Explicit= réglé du " vrai » pour forcer la déclaration de tout le variables. --batchTimeout= " 43200 » defaultLanguage= " vrai » " VB » » numRecompilesBeforeAppRestart= " de de debug= d'explicit= 15 » assembly= " faux " " 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 de du du > de strict= de de de . 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 de />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 de de de/> de de de de/> de de/> />ons, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A bureau » d'assembly= de ", Version= 11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c accessibilité » d'assembly= de ", Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A » assembly= " CrystalDecisions.CrystalReports de . 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 de de de de , Culture=neutral, PublicKeyToken=692fbea5521 " CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, » assembly= de " CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, » assembly= de " Microsoft.Office.Tools.Excel.v9.0, Version= 9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A/>e1304 PublicKeyToken=692fbea5521e1304 PublicKeyToken=692fbea5521e1304 » système » namespace= " System.Collections » namespace= " System.Collections/> du de/> de namespace= de de . Generic » namespace= " System.Collections de . Specialized » namespace= " System.Configuration » namespace= " System.Text » namespace= " System.Text.Reg de de />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 de de de de de de de de de de de de /> de de du /> tagPrefix= " ajaxToolkit »/> it » de » assembly= " d'AjaxControlToolkit » de namespace= " de du » assembly= " du » namespace= " System.Web.UI.WebControls » du tagPrefix= " asp de du » assembly= " du » namespace= " System.Web.UI System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35/> < ! --Le la section de permet le de configuration du mode d'authentification de sécurité employé par le ASP.NET pour identifier un utilisateur entrant. du timeout= " 480 " --l'enabled= de mode= " vrai " de er> " forme " timeout= " du loginUrl= le " login.aspx de du > 540 » » protection= " du name= » .authCookie tout le » » de path=/ » " users= " d'users= de de/>
" de slidingExpiration= cookieless= " UseCookies " timeout= de
" 540 * ? « /> < ! -- nécessaire avec l'authentification de formes de forcer réorienter pour ouvrir une session la page --> < ! -- users= de " [liste séparée par virgule de rôles] « users= » [liste séparée par virgule d'utilisateurs] » roles= " [liste séparée par virgule de rôles] « /> --mode= " RemoteOnly » de du > defaultRedirect= " GenericErrorPage.htm " statusCode= de " 403 » redirect= " NoAccess.htm » statusCode= de " 404 » redirect= " FileNotFound.htm » de/> du de rvices de verb= " de du path= " *.asmx » * » de validate=. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 type= " faux System.Web.Script.Services de » validate= " de *_AppService.axd de » path= " » de verb= " de * ». ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, Validate= " du » type= " du » path= " ScriptResource.axd » de TÊTE » de verb= " de de PublicKeyToken=31BF3856AD364E35 OBTENIR, System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 » enabled= " faux » du defaultProvider= " MyXmlSiteMapProvider de du » type= " de ScriptModule de name= " de de/> System.Web.Handlers.ScriptModule, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 rectifient " description= " fournisseur de MyXmlSiteMapProvider le » de name= " de du > de SiteMap qui lit dedans des dossiers 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, système, Version= 2.0.0.0, Culture=neutral, vb faux " de language= de " de " value= " de WarnAsError " de name= " de " de name= " de de PublicKeyToken=b77a5c561934e089 CompilerVersion " value= " v3.5 ; vbs ; visualbasic ; le warningLevel= " du " extension= " .vb du vbscript " 4 value= " d'OptionInfer " de name= " de du " value= " v3.5 de CompilerVersion " de name= " de du " type= " Microsoft.VisualBasic.VBCodeProvider, système, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 rectifient value=/>
faux "/>de " type= " System.Web.Script.Services de preCondition= " de " *.asmx " de path= de verb= " de " ScriptHandlerFactory " de name= de de name= " de de name= " de de name= " de de/> de preCondition= " de " ScriptModule " de name= de de name= " de de/> du validateIntegratedModeConfiguration= ScriptModule type= " System.Web.Handlers.ScriptModule, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, name= de " ScriptResource/>s/>AppService ScriptHandlerFactoryrated/>tory-Integ64E35 PublicKeyToken=31BF3856AD3er " managedHandliptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 integratedMode " type= " System.Web.Script.Services de " preCondition= " de *_AppService.axd de " path= " de " verb= " de ScriptHandlerFactoryAppServices " de name= " de *. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 l'integratedMode " verb= " de " preCondition= " de ScriptResource " de name= " de OBTIENNENT, urne de xmlns= de/> " de " path= " de TÊTE " ScriptResource.axd le " type= " System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 : schémas-microsoft-com : l'asm.v1 " le name= " System.Web.Extensions le " de du > publicKeyToken= " 31bf3856ad364e35 " oldVersion= " 1.0.0.0 - 1.1.0.0 " de newVersion= " 3.5.0.0 " le name= " System.Web.Extensions.Design le " de de/> publicKeyToken= " 31bf3856ad364e35 " oldVersion= " 1.0.0.0 de - 1.1.0.0 " newVersion= " 3.5.0.0 " allowOverride= de " rectifient " le server=AVC de " value= " de ConnectionString de key= " de du > ; database=NNN ; uid=User ; pwd=user key= " ActiveDirectoryConn " value= " LDAP " de/>
et " server=AVC de " value= " de ConnectionString de name= " de de/> ; database=NNN ; uid=User ; le
des poignées btnLogin.Click
du btnLogin_Click de/>
LOGIN.VB
Protected du pwd=user (expéditeur de ByVal comme objet, ByVal e comme " System.EventArgs) obscurcissent l'adPath comme corde = « LDAP : //DC=cool, de DC=net le " obscurcissent l'adAuth en tant que nouveau Try de SITE.LDAPAuthentication (adPath) si vrai = adAuth.IsAuthenticated (txtDomain.Text, txtusername. Le texte, txtPassword.Text) Then
'obtiennent au de rôles d'utilisateur de faibles groupes pendant que la corde = le
d'adAuth.GetGroups () 'créent le billet, et ajoutent le faible isCookiePersistent de groups. en tant que booléen = faible authTicket de chkPersist.Checked pendant que le nouveau
de FormsAuthenticationTicket (1, txtUsername.Text, DateTime.Now, DateTime.Now.AddHours (12), isCookiePersistent, groupes) 'chiffrent le faible encryptedTicket de ticket. pendant que le
de corde = de FormsAuthentication.Encrypt (authTicket) 'créent a le biscuit, et ajoutent alors le billet chiffré au biscuit comme faible authCookie de data. en tant que nouveau HttpCookie (FormsAuthentication. FormsCookieName,
d'encryptedTicket) 'si ChkPersist est vérifié 'pour que le navigateur écrive le temps d'expiration de biscuit doit être le « ne confondent pas FormsAuthenticationTicket.Expire avec le biscuit expirent le de temps si Then extrémité If
d'authCookie.Expires = d'authTicket.Expiration « ajoutent le biscuit aux biscuits sortants collection. HttpContext.Current.Response. Le
de Cookies.Add (authCookie) « vous pouvez réorienter now. « Response.Redirect (FormsAuthentication.GetRedirectUrl (txtUsername.Text, faux)) Response.Redirect (FormsAuthentication.GetRedirectUrl (txtUsername.Text, chkPersist.Checked))le le Else de « Response.Redirect (« default.aspx ») errorLabel.Text = « authentification n'a pas réussi. Vérifier le nom d'utilisateur et le mot de passe. S'assurer que votre fonction majuscule sur votre clavier est éteinte. « crochet d'If de fin du ex comme Exception errorLabel.Text = « authentification d'erreur. » + ex. Application Language= " VB " code de Sub
GLOBAL.ASAX
<%@ de fin du de Try
de fin de Message de de " serveur " de runat= de %>
/>
secondaire » qui fonctionne sur code secondaire de du du Application_End (expéditeur de Sub de fin du startup d'application de ByVal comme objet, ByVal e comme EventArgs) » le code qui fonctionne sur le Sub shutdown secondaire le » qui fonctionne quand un occurs de Sub
Session_Start (expéditeur de fin de/> de ByVal comme objet, ByVal e comme EventArgs) le » code qui fonctionne quand qu'une nouvelle session est les feux du quest Application_AuthenticateRe « le du Application_BeginRequest (expéditeur de Sub de fin du du de Sub
Session_End (expéditeur de fin de Session.Timeout = de 1 de ByVal comme objet, ByVal e comme EventArgs) de ByVal comme objet, ByVal e comme EventArgs) » met le feu au début de chaque/>/> le request l comme objet, ByVal e comme EventArgs)/> secondaire » lors d'essayer d'authentifier l'use
obscurcissent le cookieName Comme corde = FormsAuthentication.FormsCookieName obscurcissent l'authCookie le du comme de HttpCookie = de Context.Request.Cookies (cookieName)
si l'authCookie n'est que rien Then 'là n'est aucun authTicket du d'If de fin d'authentification/authorization cookie. Return faible comme authTicket de FormsAuthenticationTicket = de Nothing Try = FormsAuthentication.Decrypt (authCookie. Crochet du de valeur) ex en tant qu'exception de jet d'Exception nouvelle (ex. Le de message) « écrivent l'exception au biscuit de l'événement Log. » le sinon (authTicket.IsPersistent) Then du de Try de fin de Return si (authTicket.Expired) Then 'échouait à decrypt. Return du du du d'If de fin d'If de fin de/> 'quand le billet a été créé, la propriété d'UserData a été assigné l'a 'corde pipe-délimitée de faibles groupes du groupe names. comme corde () = authTicket.UserData.Split (le char de New () {« | le " de c}) 'créent une faible identification d'Identity. en tant que nouveau du de System.Security.Principal.GenericIdentity (authTicket.Name, « LDAPAuthentication ») 'ce principal que les écoulements dans tout le request. obscurcissent le principal pendant que nouveau System.Security.Principal.) attache du le ncipal/>GenericPri 'le nouvel objet principal au d'objet de HttpContext Context.User = _path privé public de LDAPAuthentication de classe du
LDAPAuthentication.VB
Imports System Imports Microsoft.VisualBasic Imports System.DirectoryServices Imports System.Exception
Namespace SITE
de Sub de fin du du du principal
comme _filterAttribute privé de String comme nouveau secondaire public de String
(Chemin de ByVal comme corde) le _path du = la fonction publique IsAuthenticated (domaine de Sub
de fin du path de ByVal comme username de corde, de ByVal comme pwd de corde, de ByVal comme corde) comme Boolean
obscurcissent le domainAndUsername comme corde = domaine + » \ « + faible entrée de l'username pendant que nouveau (_path, domainAndUsername, pwd) grippage de Try /> le 'à l'AdsObject indigène pour forcer authentication. obscurcissent l'obj comme objet = recherche d'entry.NativeObject
la faible en tant que nouveau
de DirectorySearcher (entrée) search.SearchScope = recherche de SearchScope.Subtree . Filtre = » sAMAccountName (de CN= " + username + ") «
' = nom. Le vieux nom de connexion de NT 4.0, doit être unique dans le domaine. Peut être confondu avec la NC. recherche du . Le filtre = » (SAMAccountName= " + username + ") le du « search.PropertiesToLoad.Add (« NC ») obscurcissent le résultat comme
de SearchResult = de search.FindOne () si le résultat n'est rien Then
False /> de retour 'le nouveau chemin à l'utilisateur dans le _path = le résultat de directory. . _filterAttribute de Path = DirectCast (résultat. Crochet du de Properties (« NC ») (0), de corde) ex comme jet nouveau System.Exception (« utilisateur de authentification de System.Exception d'erreur. » + ex. La fonction publique de retour GetGroups de Function
de fin de Try
True de fin du de message) () comme String
obscurcissent la recherche pendant que nouvelle recherche du de DirectorySearcher (_path). Le filtre = « (cn= » et _filterAttribute et ") le « (« «
de sAMAccountname le » de memberOf ») de/> d search.PropertiesToLoad.Ad de 'search.PropertiesToLoad.Add () obscurcissent des groupNames en tant que nouveau résultat du
Try de System.Text.StringBuilder () faible comme SearchResult = propertyCount du de search.FindOne () faible comme nombre entier = résultat. Propriétés (« memberOf »). Count obscurcissent le DN comme faible equalsIndex de String comme nombre entier, commaIndex comme Integer
obscurcissent le propertyCounter comme nombre entier = 0 tandis que propertyCounter < propertyCount DN = DirectCast (résultat. equalsIndex du de Properties (« memberOf ») (propertyCounter), de corde) = dn.IndexOf (« = », commaIndex de 1) = dn.IndexOf ( », « , 1) si -1 = extrémité de retour If groupNames.Append (DN de Then Nothing d'equalsIndex. groupNames.Append de Substring ((equalsIndex + 1), (commaIndex - equalsIndex) - 1)) (« |") System.Math.Max (System.Threading. Interlocked. Increment (propertyCounter), propertyCounter - crochet de While de fin de 1) ex comme jet nouveau System.Exception (« erreur d'Exception obtenant des noms de groupe. » + ex. Extrémité de retour Class End Namespace de Function de fin du de Try groupNames.ToString de fin du de message) ()
class= de
|