Desktop
Website
Multimedia
Database
Security
Enterprise
Pytanie : Wykrywać Sesyjny Stan Timeout
Kochany Ekspert,
I mieć aspx aplikacja sieciowa który wymagać więcej niż 8 godzina odświeżać lub logout. Zadawalać żadny połączenie ale I polubić niektóre VB.NET kod lub JavaScript Sesyjny timeout podręczny pismo który mówić: "Tam być żadny aktywność na jakiś czas. Klikać "OK" jeżeli ty życzyć twój sesja, lub stuknięcie "Odwoływać" logout. Dla twój ochrona jeżeli ty być niezdolny ten wiadomość wśród 2 minuta ty notować ten automatycznie" i redirects login.aspx po tym jak timeout tracić ważność.
I robić kod dla 2 dzień bez jakaś sukces, także I polubić ty móc mój kod mój: web.config, global.asax, login.vb dla twój przegląd i twój pomoc być naprawdę dużo doceniający. Thanks.
WEB.CONFIG
Notatka: Gdy alternatywa ten kartoteka ty móc the
sieć admin narzędzie położenie dla twój zastosowanie. Use
the Website->Asp.Net Konfiguracja opcja w Projekt Studio.
A pełny lista położenie i komentarz móc znajdować w
machine.config.com ments zazwyczaj lokalizować w
\ Windows \ Microsoft.Net \ Fra
mework \ v2.
x \ Config
-->
-->
-->
Ustalony kompilacyjny debug= " prawdziwy" debugging
symbol w the kompilować strona. Ponieważ ten
wpływać występ, ustawiać ten wartość true tylko
podczas development.
Wizualny Podstawowy opcja:
Ustalony strict= " prawdziwy" disallow wszystkie dane typ zamiana
dokąd dane strata móc.
Ustalony explicit= " prawdziwy" deklaracja wszystkie variables.
-->
art= " 15" strict= " fałszywy " >
/>
/>
The
sekcja umożliwiać konfiguracja
the ochrona uwierzytelnienie tryb używać
ASP.NET przybywający użytkownik. timeout= " 480 "
-->
er>
-->
The system.webServer sekcja wymagać dla ASP.NET AJAX pod Internet
serwis informacyjny 7.0. Ono być konieczny dla poprzednia wersja IIS.
-->
iguration=
" fałszywy "/>
LOGIN.VB
Protected Okręt podwodny btnLogin_Click (ByVal nadawca Jako Przedmiot, ByVal e Jako System.EventArgs) Rękojeść btnLogin.Click
Ćmić adPath Jako Sznurek = "LDAP: //DC=cool, DC=net "
Ćmić adAuth Jako Nowy SITE.LDAPAuthentication (ad
Path)
Try
Jeżeli Prawdziwy = adAuth.IsAuthenticated (txt
Domain.Tex
t, txtusername. Tekst, txtPassword.Text) Then
'dostawać użytkownik rola
Ciemnawy grupa Gdy Sznurek = adAuth.GetGroups ()
'Tworzyć the bilet, i dodawać the groups.
Ciemnawy isCookiePersistent Jako Boolowski = chkPersist.Checked
Ciemnawy authTicket Gdy Nowy FormsAuthenticationTicket (
1, txtUsername.Text, DateTime.Now, DateTime.Now.AddHours (12),
isCookiePersistent, grupa)
'Utajniać the ticket.
Ciemnawy encryptedTicket Gdy Sznurek = FormsAuthentication.Encryp
t (authTick
et)
'Tworzyć a ciastko, i wtedy dodawać the utajniony bilet the ciastko gdy data.
Ćmić authCookie Jako Nowy HttpCookie (FormsAuthentica
tion. Forms
CookieName
, encryptedTicket)
'Jeżeli ChkPersist Sprawdzać 'w rozkaz dla wyszukiwarka the ciastko ekspiracja czas musieć ustawiać
"wprawiać w zakłopotanie FormsAuthenticationTicket.
Expire z ciastko tracić ważność czas
Jeżeli Prawdziwy = isCookiePersistent Then
authCookie.Expires = authTicket.Expiration
Końcówka If
"Dodawać the ciastko the otwarty ciastko collection.
HttpContext.Current.Respon
se. Cookies
.Add (authC
ookie)
"Ty móc redirect now.
"Response.Redirect (FormsAu
thenticati
on.GetRedi
rectUrl (tx
tUsername.
Text, Fałszywy))
Response.Redirect (FormsAut
henticatio
n.GetRedir
ectUrl (txt
Username.T
ext, chkPersist.Checked))
"Response.Redirect ("defaul
t.aspx")
Else
errorLabel.Text = "Uwierzytelnienie udawać się. Sprawdzać użytkownik imię i hasło. Upewniać się twój Nakrętka Blokować na twój klawiatura być daleko. "
Końcówka If
Chwyt uwiarygodniać Jako Exception
errorLabel.Text = "Błąd. " + ex. Message
Końcówka Try
Końcówka Sub
GLOBAL.ASAX
<%@ Podaniowy Language= " VB " %>
LDAPAuthentication.VB
Imports System
Imports Microsoft.VisualBasic
Imports System.DirectoryServices
Imports System.Exception
Namespace SITE
Społeczeństwo Klasa LDAPAuthentication
Intymny _path Jako String
Intymny _filterAttribute Jako String
Jawny Okręt podwodny Nowy(ByVal ścieżka Jako Sznurek)
_path = path
Końcówka Sub
Jawny Funkcja IsAuthenticated (ByVal domena Sznurek, ByVal username Jako Sznurek, ByVal pwd Jako Sznurek) Gdy Boolean
Ćmić domainAndUsername Jako Sznurek = domena +" \ "+ username
Ciemnawy wejście Gdy Nowy DirectoryEntry (_path, domainAndUsername, pwd)
Try
'Zmora the miejscowy AdsObject authentication.
Ćmić obj Gdy Przedmiot = entry.NativeObject
Ćmić rewizja Jako Nowy DirectorySearcher (wejście)
search.SearchScope = SearchScope.Subtree
rewizja. Filtr =" (CN= " + username + ") "
'sAMAccountName = imię. Stary NT 4.0 logon imię, musieć unikalny w the domena. Móc wprawiać w zakłopotanie z CN.
rewizja. Filtr =" (SAMAccountName= " + username + ") "
search.PropertiesToLoad.Ad
d ("cn")
Ćmić rezultat Jako SearchResult = search.FindOne ()
Jeżeli rezultat Być Rezultat Then
Powrotny False
Końcówka If
'Aktualizacja the nowy ścieżka the użytkownik w the directory.
_path = rezultat. Path
_filterAttribute = DirectCast (rezultat. Properti
es ("cn") (0
), Sznurek)
Chwyt użytkownik Jako System.Exception
Rzut Nowy System.Exception ("Błąd użytkownik. " + ex. Wiadomość)
Końcówka Try
Powrotny True
Końcówka Function
Jawny Funkcja GetGroups () Gdy String
Ćmić rewizja Gdy Nowy DirectorySearcher (_path)
rewizja. Filtr = "(cn=" & _filterAttribute & ") "
search.PropertiesToLoad.Ad
d ("memberO
f")
'search.PropertiesToLoad.A
dd ("sAMAcc
ountname")
Ćmić groupNames Gdy Nowy System.Text.StringBuilder (
)
Try
Ćmić rezultat Gdy SearchResult = search.FindOne ()
Ćmić propertyCount Jako Integer = rezultat. Własność ("memberO
f"). Count
Ćmić dn Gdy String
Ćmić equalsIndex Jako Integer, commaIndex Gdy Integer
Ćmić propertyCounter Jako Integer = 0
Podczas Gdy propertyCounter < propertyCount
dn = DirectCast (rezultat. Properti
es ("member
Of") (prope
rtyCounter
), Sznurek)
equalsIndex = dn.IndexOf ("=", 1)
commaIndex = dn.IndexOf (", ", 1)
Jeżeli -1 = equalsIndex Then
Powrotny Nothing
Końcówka If
groupNames.Append (dn. Subst
ring ((equa
lsIndex + 1), (commaIndex - equalsIndex) - 1))
groupNames.Append ("|")
System.Math.Max (System.Thr
eading. Int
erlocked. I
ncrement (p
ropertyCou
nter), propertyCounter - 1)
Końcówka While
Chwyt imię Gdy Exception
Rzut Nowy System.Exception ("Błąd grupowy imię. " + ex. Wiadomość)
Końcówka Try
Powrotny groupNames.ToString ()
Końcówka Function
Końcówka Class
End Namespace
Odpowiedź : Wykrywać Sesyjny Stan Timeout
Dlaczego ty właśnie zmiana twój SessionState tryb "StateServer". Ty można zagadnienie z podaniowy basen i w InProc jeżeli można zdarzać się, sesyjny stan i asp.net pracownik proces przetwarzać. W SessionState, sesja nić i asp.net pracownik nić oddzielać i jeżeli ono przetwarzać, ono tylko wpływać the pracownik nić. Jakkolwiek, sprawdzać the połączenie jakkolwiek.
= " prawdziwy "/>
http://msdn.microsoft.com/en-us/library/ms178586.aspx
Zapominać ASP.NET Stan Usługa.
Ty móc ono w VS2008 nakazowy podpowiedź z ten rozkaz
netto początek aspnet_state
Inne rozwiązania
SUP7203B PFC niekompatybilność
system przywrócić punkt
IE8 Przedkładać Forma z [Wchodzić Do] Klucz, stosownie
zintegrowany wordpress w miejsce. blog pic doczepianie.
Łączyć XenServer wśród iPhone
Porzucony Windows 7 Instalacyjny odpowiedź kartoteka
SSH konsola: iść precyzować falcówka po nazwa użytkownika
Tworzyć Linux przygotowywać CD-R stylowy but dysk…
Dlaczego Sysinternals Wirusowy wyszukiwarka redirect?
MS Dojazdowy SQL Podział Dojazdowy obejście potrzebować