Os caros peritos,
I têm uma aplicação web do aspx que exija para funcionar mais de 8 horas sem refrescam ou logout. Por favor nenhuma ligação mas eu gostaria de saber o código de algum VB.NET ou o intervalo de parada de sessão do Javascript que advertem o certificado emergente que diz: “Não houve nenhuma atividade por alguma hora. Estalar “APROVADO” se você deseja continuar sua sessão, ou clique “cancelamento” para logout. Para sua segurança se você é incapaz de responder a esta mensagem dentro de 2 minutos você estará registrado para fora automaticamente” e reorienta a login.aspx depois que o intervalo de parada expira. o
I tem feito este por 2 dias sem nenhum sucesso, igualmente mim gostaria de você podia considerar meu código abaixo: web.config, global.asax, login.vb para sua revisão e sua ajuda são realmente muito apreciativos. Thanks.
WEB.CONFIG
: Como uma alternativa à mão que edita esta lima você pode usar a ferramenta do admin da correia fotorreceptora do para configurar ajustes para sua aplicação. Use a opção de configuração de Website->Asp.Net na lista cheia visual de Studio. A de ajustes e de comentários pode ser encontrado nos ments do machine.config.com situados geralmente no \ Windows \ Microsoft.Net \ Framework \ v2.x \ dos Config--name= " system.web.extensions” type= " System.Web.Configuration do do >
. SystemWebExtensionsSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, type= do " scripting” " System.Web.Configuration do name= " do de PublicKeyToken=31BF3856AD364E35. ScriptingSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, scriptResourceHandler” type= " System.Web.Configuration do name= " do de PublicKeyToken=31BF3856AD364E35 do ". ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, webServices falsos” type= " System.Web.Configuration do name= " do do” requirePermission= " de PublicKeyToken=31BF3856AD364E35” allowDefinition= " MachineToApplication de”. ScriptingWebServicesSectionGroup, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, jsonSerialization” type= " System.Web.Configuration do name= " do de PublicKeyToken=31BF3856AD364E35 do ". ScriptingJsonSerializationSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, profileService falso” type= " System.Web.Configuration do name= " do do” requirePermission= " de PublicKeyToken=31BF3856AD364E35” allowDefinition= " Everywhere de”. ScriptingProfileServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, authenticationService” type= " System.Web.Configuration do name= " do do” requirePermission= " de PublicKeyToken=31BF3856AD364E35” allowDefinition= " MachineToApplication de”. ScriptingAuthenticationServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, allowDefinition= falso " MachineToApplication de” name= do” requirePermission= " de PublicKeyToken=31BF3856AD364E35” do "roleService” type= " System.Web.Configuration. ScriptingRoleServiceSection, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, requirePermission= allowDefinition= " falso” " MachineToApplication”/> 64E35”/> --> dos " verdadeiro” para introduzir símbolos do da eliminação de erros na página compilada. Porque este afeta o desempenho, ajustar este valor para retificar somente o durante opções de development.
Visual Basic: Strict= ajustado do " verdadeiro” para recusar todo o tipo dos dados das conversões onde a perda dos dados pode ocorrer. Explicit= ajustado do " verdadeiro” para forçar a declaração de todo o variables. --batchTimeout= " 43200 defaultLanguage= " verdadeiro” " VB” numRecompilesBeforeAppRestart= " do do debug=” do explicit= " 15 assembly= " falso " " System.Core do do do > ” do strict=, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” assembly= " System.Web.Extensions do , Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” assembly= " System.Data.DataSetExtensions do , Version= 3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” assembly= " System.Web.Extensions do . Design, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de” assembly= " System.Design do , Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” assembly= " System.Windows.F />orms, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089 de” assembly= " System.Drawing.Design do , Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” assembly= " Microsoft.Office.Interop.Excel do , Version= 11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c de” assembly= " System.Xml do /> , Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089 de” assembly= " System.DirectoryServices do , Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” assembly= " System.DirectoryServices.Protocols do , Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” assembly= " System.ServiceProcess do /> , Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” assembly= " System.Web.RegularExpressi/> />ons, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” escritório do assembly= do ", Version= 11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c de” acessibilidade do assembly= do ", Version= 2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A de” assembly= " CrystalDecisions.CrystalReports do . Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304 de” assembly= " CrystalDecisions.Enterprise.Framework do , Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304 de” assembly= " CrystalDecisions.ReportAppServer.ClientDoc do , Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304 de” assembly= " CrystalDecisions.Shared do , Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304 de” assembly= " CrystalDecisions.Enterprise.InfoStore do , Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521.ReportSource do , Version=10.5.3700.0, Culture=neutral, de” assembly= " Microsoft.Office.Tools.Excel.v9.0 do , Version= 9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A/>e1304 PublicKeyToken=692fbea5521e1304 PublicKeyToken=692fbea5521e1304 de” do namespace= sistema de” namespace= " System.Collections de” namespace= " System.Collections/> " do /> do do . Generic de” namespace= " System.Collections do . Specialized de” namespace= " System.Configuration de” namespace= " System.Text de” namespace= " System.Text.Reg do do />ularExpressions de” namespace= " System.Linq de” namespace= " System.Xml.Linq de” namespace= " System.Xml de” namespace= " System.Web de” namespace= " System.Web.Caching de” namespace= " System.Web.SessionState de” namespace= " System.Web.Security de” namespace= " System.Web.Profile de” namespace= " System.Web.UI de” namespace= " System.Web.UI.WebControls de” namespace= " System.Web.UI.WebControls.WebParts do " namespace= " System.Web.UI.HtmlControls de” namespace= " System.DiretoryServices do " tagPrefix= " asp do do do do do do do do do do do do /> do do /> tagPrefix= " ajaxToolkit”/> it” do” assembly= " de AjaxControlToolkit do namespace= " do do” assembly= " System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de” do” namespace= " System.Web.UI.WebControls do tagPrefix= " asp do do” assembly= " System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de” do” namespace= " System.Web.UI/> a seção do permite o da configuração da modalidade da autenticação da segurança usada pelo ASP.NET para identificar um novo usuário. do timeout= " 480 " --o enabled= do mode= " verdadeiro " do er> " dá forma " ao timeout= " do loginUrl= " login.aspx dos do > 540” protection= "” do name=” .authCookie todo o”” do path=/" users= " do users= do de/>
"” do slidingExpiration= cookieless= " UseCookies " timeout= do
" 540 *? “/> do de/> de/> --mode= " RemoteOnly” dos do > defaultRedirect= " GenericErrorPage.htm " statusCode= do " 403” redirect= " NoAccess.htm” statusCode= do " 404” redirect= " FileNotFound.htm” de/> do do rvices” do verb= " do ” do path= " *.asmx” *” do validate=. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de” type= falso " System.Web.Script.Services do” validate= " " de *_AppService.axd do” path= do verb= " do *”. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, Validate= enabled= " falso de” " do” type= " System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35” do” path= " ScriptResource.axd da CABEÇA do verb= " do de PublicKeyToken=31BF3856AD364E35 de” COMEÇ, do defaultProvider= " MyXmlSiteMapProvider do do” type= " System.Web.Handlers.ScriptModule, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de” " de ScriptModule do name= do /> retificam do " description= " fornecedor de MyXmlSiteMapProvider o” do name= " do > de SiteMap que lê dentro limas 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 do language= do " do " value= " " de WarnAsError de " do name= do do name= " do de PublicKeyToken=b77a5c561934e089 do " CompilerVersion " value= " v3.5 de "; vbs; visualbasic; warningLevel= " do " extension= " .vb do vbscript o " 4 value= " " de OptionInfer do name= " do do " value= " v3.5 de " " de CompilerVersion do name= do do " type= " Microsoft.VisualBasic.VBCodeProvider, sistema, Version= 2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 do " retifica de " value=/>
/> a seção de system.webServer é exigido funcionando ASP.NET AJAX sob os serviços de informação 7.0 de Internet . Não é necessário para a versão anterior de IIS. --integratedMode " type= " System.Web.Script.Services " do preCondition= " de " *.asmx " do path= " do verb= " ScriptHandlerFactory do name= de " do do name= " do do name= " do do name= " do de/> " do preCondition= " de " ScriptModule do name= do do name= " do de/> do validateIntegratedModeConfiguration= " do " ScriptModule type= " System.Web.Handlers.ScriptModule, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, name= do " ScriptResource/>s/>AppService ScriptHandlerFactoryrated/>tory-Integ64E35 PublicKeyToken=31BF3856AD3er " managedHandliptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de " integratedMode " type= " System.Web.Script.Services do " preCondition= " " de *_AppService.axd do " path= do " verb= " de ScriptHandlerFactoryAppServices do name= " do *. ScriptHandlerFactory, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 de " integratedMode " verb= " do " preCondition= " " de ScriptResource do name= do COMEÇ, urn do xmlns= /> " do " path= " da CABEÇA de " ScriptResource.axd o " type= " System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version= 3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35: esquemas-microsoft-com: o asm.v1 do " o name= " System.Web.Extensions o " do > publicKeyToken= " 31bf3856ad364e35 de " oldVersion= " 1.0.0.0 do - 1.1.0.0 " newVersion= " 3.5.0.0 de " o name= " System.Web.Extensions.Design o " do /> publicKeyToken= " 31bf3856ad364e35 de " oldVersion= " 1.0.0.0 do - 1.1.0.0 " newVersion= " 3.5.0.0 de " allowOverride= do " retifica do " o server=AVC do " value= " " de ConnectionString do key= do > ; database=NNN; uid=User; pwd=user de " key= " ActiveDirectoryConn " value= " LDAP/>
et de " server=AVC do " value= " " de ConnectionString do name= do /> ; database=NNN; uid=User; o
dos punhos btnLogin.Click
do btnLogin_Click/>
LOGIN.VB
Protected do pwd=user de " (remetente de ByVal como o objeto, ByVal e como System.EventArgs) escurece o adPath como a corda = “LDAP: //DC=cool, de DC=net " escurecem o adAuth como o Try de SITE.LDAPAuthentication (adPath) se verdadeiro = adAuth.IsAuthenticated (txtDomain.Text, txtusername. O texto, txtPassword.Text) Then
'começ ao dos papéis de usuário grupos não ofuscantes como a corda = o
de adAuth.GetGroups () 'criam o bilhete, e adiciona o isCookiePersistent não ofuscante de groups. como bôoleano = authTicket não ofuscante de chkPersist.Checked enquanto 12), isCookiePersistent, grupos) o
de FormsAuthenticationTicket (1, txtUsername.Text, DateTime.Now, DateTime.Now.AddHours ('cifra o encryptedTicket não ofuscante de ticket. enquanto o
da corda = do FormsAuthentication.Encrypt (authTicket) 'cria a o bolinho, e adiciona então o bilhete cifrado ao bolinho como o authCookie não ofuscante de data. como HttpCookie novo (FormsAuthentication. FormsCookieName,
do encryptedTicket) 'se ChkPersist está verific 'para que o navegador escreva o tempo da expiração do bolinho tem que ser o “não confunde FormsAuthenticationTicket.Expire com o bolinho expira o do tempo se Then extremidade If
de authCookie.Expires = de authTicket.Expiration “adiciona o bolinho aos bolinhos que parte collection. HttpContext.Current.Response. O
de Cookies.Add (authCookie) “você pode reorientar now. “Response.Redirect (FormsAuthentication.GetRedirectUrl (txtUsername.Text, falso)) Response.Redirect (FormsAuthentication.GetRedirectUrl (txtUsername.Text, chkPersist.Checked))o de “ Else Response.Redirect (“default.aspx”) errorLabel.Text = “autenticação não sucedeu. Verific o nome e a senha de usuário. Certificar-se que seu fechamento de tampões em seu teclado está. do “prendedor de If do fim ex como Exception errorLabel.Text = “autenticação do erro. ” + ex. Aplicação Language= " VB " código de Sub
GLOBAL.ASAX
<%@ do fim do de Try
do fim de Message do do " usuário " do runat= de %>
/>
secundário” que funciona código secundário do do do Application_End de Sub do fim do startup da aplicação (remetente de ByVal como o objeto, ByVal e como EventArgs)” o código que funciona Sub shutdown secundário no” que funcionar quando um occurs de Sub
Session_Start do fim de/> (remetente de ByVal como o objeto, ByVal e como EventArgs) o” código que funciona quando que uma sessão nova é fogos do quest Application_AuthenticateRe “o do Application_BeginRequest de Sub do fim do do de Sub
Session_End do fim de Session.Timeout = de 1 (remetente de ByVal como o objeto, ByVal e como EventArgs) (remetente de ByVal como o objeto, ByVal e como EventArgs)” ateia fogo no início de cada/>/> request l como o objeto, ByVal e como EventArgs)/> secundário” em cima da tentativa autenticar o use
escurece o cookieName como a corda = FormsAuthentication.FormsCookieName escurecem o authCookie como o do do
de HttpCookie = de Context.Request.Cookies (cookieName) se o authCookie não é que nada Then 'lá não é nenhum authTicket não ofuscante do de If do fim da autenticação/authorization cookie. Return como o authTicket de FormsAuthenticationTicket = de Nothing Try = o FormsAuthentication.Decrypt (authCookie. Prendedor do do valor) ex como a exceção nova do lance de Exception (ex. O da mensagem) “escreve a exceção ao bolinho do evento Log. ” o se não (authTicket.IsPersistent) Then do de Try do fim de Return se (authTicket.Expired) Then 'falhou à extremidade If Return O do do do de If do fim de/> 'quando o bilhete foi criado, a propriedade de UserData foi atribuído o a 'corda tubulação-limitada de grupos não ofuscantes do grupo names. como a corda () = authTicket.UserData.Split (o carvão animal do New () {“|o de " c}) 'cria uma identificação não ofuscante de Identity. como o do de System.Security.Principal.GenericIdentity (authTicket.Name, “LDAPAuthentication”) 'este principal que os fluxos durante todo o request. escurecem o principal enquanto System.Security.Principal.) anexo do ncipal/>GenericPri novo 'o objeto principal novo ao do objeto de HttpContext Context.User = _path confidencial público de LDAPAuthentication da classe do
LDAPAuthentication.VB
Imports System Imports Microsoft.VisualBasic Imports System.DirectoryServices Imports System.Exception
Namespace SITE
de Sub do fim do do do principal
como o _filterAttribute confidencial de String como novo secundário público de String
(Trajeto de ByVal como a corda) o _path do = a função pública IsAuthenticated de Sub
do fim do path (domínio de ByVal como o username da corda, do ByVal como o pwd da corda, do ByVal como a corda) como Boolean
escurecem o domainAndUsername como a corda = o domínio +” \ “+ entrada não ofuscante do username enquanto (_path, domainAndUsername, pwd) o ligamento de Try /> novo 'ao AdsObject nativo para forçar authentication. escurece o obj como o objeto = a busca não ofuscante de entry.NativeObject
como o
de DirectorySearcher (entrada) search.SearchScope = busca de SearchScope.Subtree . Filtro =” sAMAccountName (de CN= " + username + ") “
' = nome. O nome de início de uma sessão velho do NT 4.0, deve ser original no domínio. Pode ser confundido com a NC. busca do . O filtro =” (SAMAccountName= " + username + ") do “o search.PropertiesToLoad.Add (“NC”) escurece o resultado como o
de SearchResult = de search.FindOne () se o resultado não é nada Then
False /> do retorno 'o trajeto novo ao usuário no _path = no resultado de directory. . _filterAttribute de Path = DirectCast (resultado. Prendedor do de Properties (“NC”) (0), de corda) ex como o lance System.Exception novo de System.Exception (do “usuário de autenticação erro. ” + ex. A função pública do retorno GetGroups de Function
do fim de Try
True do fim do da mensagem) () como String
escurece a busca enquanto busca nova do de DirectorySearcher (_path). O filtro = “(cn=” & _filterAttribute & ") “(““o
do sAMAccountname” do memberOf”) de/> d search.PropertiesToLoad.Ad 'de search.PropertiesToLoad.Add () escurece groupNames como o resultado não ofuscante novo do
Try de System.Text.StringBuilder () como SearchResult = o propertyCount não ofuscante do de search.FindOne () como o inteiro = o resultado. Propriedades (“memberOf”). Count escurecer o dn como o equalsIndex não ofuscante de String como o inteiro, commaIndex como Integer
escurece o propertyCounter como o inteiro = o 0 quando propertyCounter < propertyCount dn = DirectCast (resultado. equalsIndex do de Properties (“memberOf”) (propertyCounter), de corda) = commaIndex do de dn.IndexOf (“=”, 1) = de dn.IndexOf (”, “, 1) se -1 = extremidade do retorno If groupNames.Append de Then Nothing do equalsIndex (dn. Substring ((equalsIndex + 1), (commaIndex - equalsIndex) - 1)) groupNames.Append (“|") System.Math.Max (System.Threading. Interlocked. Increment (propertyCounter), propertyCounter - 1) prendedor de While do fim do ex como o lance System.Exception novo de Exception (“erro que obtem nomes de grupo. ” + ex. Extremidade do retorno Class End Namespace de Function do fim do de Try groupNames.ToString do fim do da mensagem) ()
class= do
|