Vpišite se z Microsoftovim
Vpišite se ali ustvarite račun.
Pozdravljeni,
Izberite drug račun.
Imate več računov
Izberite račun, s katerim se želite vpisati.

Kaj je stanje pogleda?

Stanje pogleda je informacija, ki se med stranmi s spletnim obrazcem (. aspx) zaokroži v aplikaciji ASP.NET. Oznaka HTML za polje _ _ VIEWSTATE je podobna tej:

< input Type = "skrito" name = "_ _ VIEWSTATE" ID = "_ _ VIEWSTATE" Value = "..."/>En primer elementa, ki je morda shranjen v polju _ _ VIEWSTATE, je besedilo kontrolnika gumba. Če uporabnik klikne gumb, bo rutina za obravnavo dogodkov Button_Click lahko izvlekli besedilo gumba iz polja stanje pogleda. Oglejte si temo pregled stanja ASP.net pogleda na Microsoftovo omrežje za razvijalce (MSDN) za veliko podrobnejšo predstavitev stanja pogleda ASP.net. Ker polje _ _ VIEWSTATE vsebuje pomembne informacije, ki se uporabljajo za rekonstruiranje strani na poback, se prepričajte, da napadalec ne more spreminjati tega polja. Če je napadalec predložil zlonamerno koristnost _ _ VIEWSTATE, bi lahko napadalec morda Prelisičiti aplikacijo v izvajanje dejanja, ki je drugače ne bi izvedla. Če želite preprečiti takšno nedovoljeno Napadanje, je polje _ _ VIEWSTATE zaščiteno s kodo za preverjanje pristnosti sporočila (MAC). ASP.NET potrjuje MAC, ki je predložen skupaj z _ _ VIEWSTATE koristnega tovora, ko se pojavi povrnete. Ključ, ki se uporablja za izračun sistema MAC, je določen v elementu aplikacije v datoteki web. config. Ker napadalec ne more uganiti vsebine elementa < machineKey >, napadalec ne more zagotoviti veljavnega sistema MAC, če napadalec poskuša posegati v koristni tovor _ _ VIEWSTATE. ASP.NET hoteti odkriti to a veljaven ŠKOT hasnt ' been preskrbljen, ter ASP.NET hoteti zavrniti zlorad prošnja.

Kaj povzroča napake pri preverjanju napak MAC?

Napaka pri preverjanju napake v sistemu MAC bo podobna naslednjima primerom:

Napaka strežnika v aplikaciji '/' Application. Validacija MAC viewstate ni uspela. Če to aplikacijo gosti spletna gruča ali gruča, zagotovite, da konfiguracija < machineKey > določa isti validationKey in validacijski algoritem. Samodejnega ustvarjanja ni mogoče uporabiti v gruči. Opis: med izvajanjem trenutne spletne zahteve je prišlo do neobravnavane izjeme. Prosimo, preglejte sled sklada za več informacij o napaki in če izvira iz kode. Izjema podrobnost: System. Web. HttpException: proglasitev pravnomočnosti ali pravne veljavnosti od viewstate ŠKOT ne zadostovati. Če to aplikacijo gosti spletna gruča ali gruča, zagotovite, da konfiguracija < machineKey > določa isti validationKey in validacijski algoritem. Samodejnega ustvarjanja ni mogoče uporabiti v gruči. Izvorna napaka: [ni ustreznih izvornih vrstic] Izvorna datoteka:... Vrstica: 0 Sled sklada: [ViewStateException: neveljavno stanje pogledov. Odjemalec IP::: 1 Pristanišče: 40653 Referer: http://localhost:40643/MyPage.aspx Pot:/MyPage.aspx User-Agent: Mozilla/5.0 (združljiv; MSIE 10,0; Windows NT 6,2; WOW64 Trident/6.0) ViewState:...] [HttpException (0x80004005): proglasitev pravnomočnosti ali pravne veljavnosti od viewstate ŠKOT ne zadostovati. Če to aplikacijo gosti spletna gruča ali gruča, zagotovite, da konfiguracija < machineKey > določa isti validationKey in validacijski algoritem. Samodejnega ustvarjanja ni mogoče uporabiti v gruči. Za več informacij glejte http://go.microsoft.com/fwlink/?LinkID=314055.] System. Web. UI. Viewstateizjema. ThrowError (izjema notranji, tetiva persistedState, niz errorPageMessage, Boolean macValidationError) + 190 System. Web. UI. Viewstateizjema. ThrowMacValidationError (izjema notranji, string persistedState) + 46 System. Web. UI. ObjectStateFormatter. Deserialize (string inputString, namen namen) + 861 System. Web. UI. ObjectStateFormatter. System. Web. UI. IStateFormatter2. Deserialize (string serializedState, namen namen) + 51 System. Web. UI. util. Deserializewithuveljavljati (IStateFormatter2 formatter, string serializedState, namen namen) + 67 System. Web. UI. HiddenFieldPageStatePersister. load () + 444 System. Web. UI. Page. Loadpagestatefromtrdovratencemedium () + 368 System. Web. UI. Page. LoadAllState () + 109 System. Web. UI. Page. ProcessRequestMain (logična vrednost includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) + 7959 System. Web. UI. Page. ProcessRequest (Boolean Includestagesbeforeasyncpointa, Boolean includeStagesAfterAsyncPoint) + 429 System. Web. UI. Page. ProcessRequest () + 125 System. Web. UI. Page. Processrequestwithnouveljavlja (HttpContext kontekst) + 48 System. Web. UI. Page. ProcessRequest (Httpkontekstni kontekst) + 234 ASP. mypage_aspx. ProcessRequest (HttpContext kontekst) v...: 0 System. Web. CallHandlerExecutionStep. System. Web. HttpApplication. IExecutionStep. Execute () + 1300 System. Web. HttpApplication. ExecuteStep (korak IExecutionStep, Boolean & completedSynchronously) + 140

1. vzrok: spletna aplikacija se izvaja v gruči (okolju z več strežniki)

ASP.NET samodejno ustvari kriptografski ključ za vsako aplikacijo in shrani ključ v registrski panj HKCU. To avto-sploditi zakleniti je že rabljen če je ne jasen < machineKey > element v uporaba ' zunanja podoba. Ker pa je ta samodejni ustvarjeni ključ lokalni do računalnika, ki je ustvaril ključ, ta scenarij povzroči težavo za aplikacije, ki se izvajajo v gruči. Vsak strežnik v kmetiji bo ustvarila svoj lokalni ključ, in nobeden od strežnikov v kmetiji se bo strinjal, na kateri ključ za uporabo. Rezultat je, da če en strežnik generira _ _ VIEWSTATE koristnost, da drug strežnik porabi, bo potrošnik izkušnje MAC validacijo neuspeh.

  • Resolucija 1a: ustvarite eksplicitno < machineKey > element Z dodajanjem eksplicitnega < machineKey > element za aplikacijo Web. config datoteko, razvijalec pove, ASP.NET ne uporablja samodejno ustvarjeni kriptografski ključ. Za navodila o tem, kako ustvariti < machineKey > element, glejte dodatek A . Ko je ta element dodan v datoteko web. config, znova uvedite aplikacijo na vsak strežnik v gruči. Opomba Nekatere storitve spletnega gostovanja, kot so spletna mesta Microsoft Azure, sprejmejo ukrepe za sinhronizacijo samodejnega ustvarjenega ključa aplikacije v svojih strežnikih za strežnike. To omogoča aplikacije, ki niso določene izrecno < machineKey > element za nadaljevanje dela v teh okoljih, tudi če se aplikacija izvaja v gruči. Če se aplikacija izvaja v storitvi gostovanja drugih ponudnikov, se obrnite na ponudnika gostovanja, da ugotovite, ali ta položaj velja za vas.

  • Resolucija 1b: Omogočanje afinitete pri Balancer obremenitve Če vaša spletna mesta delujejo za Balancer za uravnavanje obremenitve, lahko omogočite strežniško afiniteto za začasno delo okoli težave. To pomaga zagotoviti, da katera koli stranka samo komunicira z enim fizičnim strežnikom za uravnavanje obremenitve, tako da bo vse kriptografske plačljiv tovor tako ustvari in porabi isti strežnik. To se ne sme obravnavati kot dolgoročna rešitev problema. Tudi če je strežnik afiniteta omogočena, bo večina obremenitev balancers preusmeriti stranko na drugačen fizični strežnik, če prvotni strežnik, na katerega so bili affinitized Load balancers gre offline. To povzroči, da novi strežnik zavrne kriptografske plačljiv tovor (na primer _ _ viewstate, obrazce za preverjanje pristnosti, mvcs žetoni proti ponarejanju in druge storitve), ki jih ima stranka trenutno. Uporaba eksplicitnega < machineKey > element in vnovično uvajanje aplikacije mora biti prednost pred omogočanjem strežniške afinitete.

2. vzrok: postopek delavca uporablja identiteto bazena aplikacije IIS 7,0

Stažist v bolnišnici sporočilo usluga (IIS) 7,0 (okno razgled, okno pomočnik 2008) začeti Uporaba tolmun identiteta, a nov osamljenost mehanični materializem to pomoč priskrbeti se povečati se varnost zakaj pomočnik to prost dostop ASP.net uporaba. Vendar pa mesta, ki se izvajajo v okviru identitete skupine aplikacij, nimajo dostopa do registra HKCU. To je, če ASP.NET Runtime shranjuje svoje samodejno ustvarjene < machineKey > ključi. Rezultat je to ASP.NET ne morem vztrajati pri čem avto-sploditi zakleniti čas uporaba skupina je prikrivati. Zato, sleherni čas w3wp. exe je prikrivati, a nov začasno zakleniti je sploditi. Opomba To ni težava v storitvah IIS 7,5 (Windows 7, Windows Server 2008 R2) in novejših različicah. Naprej od this prevod od IIS, ASP.NET moči vztrajati svoj avto-sploditi sklepnik v a različen namestitev to preživlja uporaba tolmun RESETS.

  • Resolucija 2a: uporabite pripomoček aspnet_regiis ASP.NET naprave vsebujejo pripomoček, aspnet_regiis. exe. Ta pripomoček omogoča ASP.NET vmesnik z IIS za izvajanje konfiguracij, ki so potrebne za zagon upravljane aplikacije. Nedoločni zaimek od od this zunanja podoba zagnati krik in vik potreben sklepnik v registracija panj v usposobiti vztrajnost od avto-sploditi stroj sklepnik. Prvič, morate ugotoviti, kateri program bazen vaše spletne strani uporablja. To se lahko določi z uporabo inetmgr Utility, ki je vključena v IIS. Izberite svoje spletno mesto v drevesnem prikazu na levi strani, z desno tipko miške kliknite upravljanje Website in nato kliknite napredne nastavitve. Pogovorno okno, ki se prikaže, bo prikazalo ime skupine aplikacij. Advanced Settings V oder primeren registracija sklepnik zakaj ASP.net 4,0 uporaba tolmun, slediti od this lestev:

    1. Odprite skrbniški ukazni poziv.

    2. Poiskati primeren naslovnik, zaviseti naprej ali vaš uporaba skupina je 32-košček ali 64-košček:

      • 32-košček uporaba bazen: CD/d%windir%\Microsoft.NET\Framework\v4.0.30319

      • 64-košček uporaba bazen: CD/d%windir%\Microsoft.NET\Framework64\v4.0.30319

    3. Premaknite se v imenik, vnesite ta ukaz in pritisnite tipko ENTER:

      aspnet_regiis-ga "IIS APPPOOL\app-pool-name"

    Če je aplikacijski bazen ASP.NET 2,0 ali 3,5, sledite tem korakom:

    1. Odprite skrbniški ukazni poziv.

    2. Poiskati primeren naslovnik, zaviseti naprej ali vaš uporaba skupina je 32-košček ali 64-košček:

      • 32-košček uporaba bazen: CD/d%windir%\Microsoft.NET\Framework\v2.0.50727

      • 64-košček uporaba bazen: CD/d%windir%\Microsoft.NET\Framework64\v2.0.50727

    3. Premaknite se v imenik, vnesite ta ukaz in pritisnite tipko ENTER:

      aspnet_regiis-ga "IIS APPPOOL\app-pool-name"

    Če je na primer v skupini aplikacij imenovana moja skupina aplikacij (kot v prejšnji sliki), zaženite ta ukaz:

    aspnet_regiis-ga "IIS Apppool\moj app Pool" Opomba Sistem usluga APPHOSTSVC ter WAS maj življati v obstati tekmovanje v teku zakaj aspnet_regiis korist odločiti IIS APPPOOL \ * ime primerno.

  • Resolucija 2b: ustvarite eksplicitno < machineKey > element Z dodajanjem eksplicitnega < machineKey > element za aplikacijo Web. config datoteko, razvijalec pove, ASP.NET ne uporablja samodejno ustvarjeni kriptografski ključ. Za navodila o tem, kako ustvariti < machineKey > element, glejte dodatek A .

3. vzrok: skupina aplikacij je konfigurirana z uporabo LoadUserProfile = FALSE

Če se skupina aplikacij izvaja z identiteto po meri, IIS morda ni naložil uporabniškega profila za identiteto. To has stranski učinek od izdelava HKCU registracija neuporaben zakaj ASP.NET vztrajati avto-sploditi < machineKey >. Zato bo nov samodejno ustvarjen ključ ustvarjen vsakič, ko se aplikacija znova zažene. Več informacij najdete v razdelku uporabniški profil na Microsoftovem spletnem mestu.

  • Resolucija 3a: uporabite pripomoček aspnet_regiis Navodila za to so enaka resoluciji 2a. Za več informacij glejte ta razdelek.

  • Resolucija 3b: uporabite eksplicitno < machineKey > Z dodajanjem eksplicitnega < machineKey > element za aplikacijo Web. config datoteko, razvijalec pove, ASP.NET ne uporablja samodejno ustvarjeni kriptografski ključ. Za navodila o tem, kako ustvariti < machineKey > element, glejte dodatek A .

  • Resolucija 3c: ročno zagotavljanje zahtevanih registrskih ključev HKCU Če ne morete zagnati aspnet_regiis uporabnost, lahko uporabite skript lupine Windows PowerShell za zagotavljanje ustreznih registrskih ključev v HKCU. Za več informacij glejte dodatek B .

  • Ločljivost 3D: Nastavi LoadUserProfile = True za to skupino aplikacij Omogočite lahko tudi nalaganje uporabniškega profila v to skupino aplikacij. To omogoča HKCU registrski panj, začasna mapa in druge uporabniku specifične lokacije za shranjevanje, ki so na voljo aplikaciji. Vendar lahko to povzroči večjo uporabo diska ali pomnilnika za proces delavca. Za več informacij o tem, kako omogočite to nastavitev, si oglejte element .

4. vzrok: lastnost Page. ViewStateUserKey ima napačno vrednost

Razvijalci programske opreme se lahko odločijo za uporabo strani. ViewStateUserKey lastnost, da dodate zahtevo za zaščito pred ponarejanjem v polje _ _ viewstate. Če uporabljate lastnost stran. ViewStateUserKey , je običajno nastavljena na vrednost, kot je uporabniško ime trenutnega uporabnika ali identifikator seje uporabnika. Predloge projektov za aplikacije WebForms v programu Microsoft Visual Studio 2012 in novejše različice vsebujejo vzorce, ki uporabljajo to lastnost. Za več informacij si oglejte temo» lastnost «ViewStateUserKey na spletnem mestu Microsoft Developer Network (MSDN). Če je določena lastnost Viewstateuserkey , je njena vrednost v času ustvarjanja POGORELA v _ _ viewstate. Ko je polje _ _ VIEWSTATE porabljeno, strežnik preveri lastnost trenutne strani Viewstateuserkey in jo potrdi glede na vrednost, ki je bila uporabljena za ustvarjanje polja _ _ viewstate. Če se vrednosti ne ujemajo, je zahteva zavrnjena kot potencialno zlonamerna. Primer napake, povezane z ViewStateUserKey, bi bil odjemalec, ki ima v brskalniku odprta dva zavihka. Odjemalec je prijavljen kot uporabnik A, na prvem zavihku pa je stran upodobljena z _ _ VIEWSTATE, katere lastnost Viewstateuserkey vsebuje» uporabnik A «. V drugem zavihku se odjemalec odjavi in nato prijavi v kot uporabnik B. Odjemalec gre nazaj na prvi zavihek in pošlje obrazec. Lastnost Viewstateuserkey lahko vsebuje» User B «(ker je to tisto, kar pravi piškotek za preverjanje pristnosti odjemalca). Vendar pa polje _ _ VIEWSTATE, ki ga je stranka predložila, vsebuje» uporabnik A «. To neskladje povzroči neuspeh.

  • Ločljivost 4a: Preverite, ali je» ViewStateUserKey «pravilno nastavljen Če aplikacija uporablja lastnost Viewstateuserkey , preverite, ali je vrednost lastnosti enaka, ko je stanje pogleda ustvarjeno in ko je porabljeno. Če uporabljate trenutno uporabniško ime uporabnika prijavljeni uporabnik, se prepričajte, da je uporabnik še vedno prijavljen in da se identiteta uporabnika v času objave ni spremenila. Če uporabljate identifikator seje trenutnega uporabnika, se prepričajte, da seja ni potekla. Če uporabljate kmetijsko okolje, se prepričajte, da se elementi < machineKey > ujemajo. Za navodila o tem, kako ustvariti te elemente, glejte dodatek A .

Dodatek A: kako ustvariti < machineKey > element

Varnostno opozorilo Obstaja veliko spletnih strani, ki bo ustvarila < machineKey > element za vas s klikom na gumb. Nikoli ne uporabljajte < machineKey > element, ki ste ga pridobili na enem od teh spletnih mest. Nemogoče je vedeti, ali so bili ti ključi varno ustvarjeni ali če se evidentirajo v tajni zbirki podatkov. Vi should šele koli raba < machineKey > zunanja podoba element to vi zagnati krik in vik se.

Če želite ustvariti < machineKey > element sami, lahko uporabite ta skript lupine Windows PowerShell :

# Generates a <machineKey> element that can be copied + pasted into a Web.config file.
function Generate-MachineKey {
  [CmdletBinding()]
  param (
    [ValidateSet("AES", "DES", "3DES")]
    [string]$decryptionAlgorithm = 'AES',
    [ValidateSet("MD5", "SHA1", "HMACSHA256", "HMACSHA384", "HMACSHA512")]
    [string]$validationAlgorithm = 'HMACSHA256'
  )
  process {
    function BinaryToHex {
        [CmdLetBinding()]
        param($bytes)
        process {
            $builder = new-object System.Text.StringBuilder
            foreach ($b in $bytes) {
              $builder = $builder.AppendFormat([System.Globalization.CultureInfo]::InvariantCulture, "{0:X2}", $b)
            }
            $builder
        }
    }
    switch ($decryptionAlgorithm) {
      "AES" { $decryptionObject = new-object System.Security.Cryptography.AesCryptoServiceProvider }
      "DES" { $decryptionObject = new-object System.Security.Cryptography.DESCryptoServiceProvider }
      "3DES" { $decryptionObject = new-object System.Security.Cryptography.TripleDESCryptoServiceProvider }
    }
    $decryptionObject.GenerateKey()
    $decryptionKey = BinaryToHex($decryptionObject.Key)
    $decryptionObject.Dispose()
    switch ($validationAlgorithm) {
      "MD5" { $validationObject = new-object System.Security.Cryptography.HMACMD5 }
      "SHA1" { $validationObject = new-object System.Security.Cryptography.HMACSHA1 }
      "HMACSHA256" { $validationObject = new-object System.Security.Cryptography.HMACSHA256 }
      "HMACSHA385" { $validationObject = new-object System.Security.Cryptography.HMACSHA384 }
      "HMACSHA512" { $validationObject = new-object System.Security.Cryptography.HMACSHA512 }
    }
    $validationKey = BinaryToHex($validationObject.Key)
    $validationObject.Dispose()
    [string]::Format([System.Globalization.CultureInfo]::InvariantCulture,
      "<machineKey decryption=`"{0}`" decryptionKey=`"{1}`" validation=`"{2}`" validationKey=`"{3}`" />",
      $decryptionAlgorithm.ToUpperInvariant(), $decryptionKey,
      $validationAlgorithm.ToUpperInvariant(), $validationKey)
  }
}

Zakaj ASP.NET 4,0 uporaba, vi moči šele oklic sploditi-machinekey če ne parametar v sploditi a < machinekey > element kot slediti:

PS> Generate-MachineKey
<machineKey decryption="AES" decryptionKey="..." validation="HMACSHA256" validationKey="..." />

ASP.NET 2,0 in 3,5 aplikacije ne podpirajo HMACSHA256. Namesto tega lahko določite SHA1, če želite ustvariti združljiv < machineKey > element, kot sledi:

PS> Generate-MachineKey -validation sha1
<machineKey decryption="AES" decryptionKey="..." validation="SHA1" validationKey="..." />

Brž ko vi življati a < machineKey > element, vi moči met kamna z napisno tablo to v ujeti. config pila. Element < machineKey > je veljaven samo v datoteki web. config v korenu aplikacije in ni veljaven na ravni podmape.

<configuration>
  <system.web>
    <machineKey ... />
  </system.web>
</configuration>

Za celoten seznam podprtih algoritmov zaženite pomoč pri ustvarjanju-MachineKey iz poziva Windows PowerShell.

Dodatek B: Omogočanje registra, da vztraja pri samodejnem generirani tipki

Privzeto je, ker so v registru HKCU vztrajane samodejne ustvarjene tipke ASP. NETs, se lahko ti ključi izgubijo, če uporabniški profil ni bil naložen v proces delavca IIS in nato skupina aplikacij reciklira. Ta scenarij lahko vpliva na ponudnike gostovanja v skupni rabi, ki izvajajo skupine aplikacij kot standardne uporabniške račune sistema Windows. V opus okrog to položaj, ASP.NET usposobiti vztrajno avto-sploditi sklepnik v HKLM registracija namesto HKCU registracija. To se običajno izvede z uporabo pripomočka aspnet_regiis (glejte navodila v razdelku» Resolucija 2a: uporabite razdelek aspnet_regiis uporabnost «). Vendar, zakaj upraviteljstvo kdo nikar ne biti brez teči to korist, sledeč okno PowerShell scenarij maj obstati že rabljen namesto tega:

# Provisions the HKLM registry so that the specified user account can persist auto-generated machine keys.
function Provision-AutoGenKeys {
  [CmdletBinding()]
  param (
    [ValidateSet("2.0", "4.0")]
    [Parameter(Mandatory = $True)]
    [string] $frameworkVersion,
    [ValidateSet("32", "64")]
    [Parameter(Mandatory = $True)]
    [string] $architecture,
    [Parameter(Mandatory = $True)]
    [string] $upn
  )
  process {
    # We require administrative permissions to continue.
    if (-Not (new-object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) {
        Write-Error "This cmdlet requires Administrator permissions."
        return
    }
    # Open HKLM with an appropriate view into the registry
    if ($architecture -eq "32") {
        $regView = [Microsoft.Win32.RegistryView]::Registry32;
    } else {
        $regView = [Microsoft.Win32.RegistryView]::Registry64;
    }
    $baseRegKey = [Microsoft.Win32.RegistryKey]::OpenBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine, $regView)
    # Open ASP.NET base key
    if ($frameworkVersion -eq "2.0") {
        $expandedVersion = "2.0.50727.0"
    } else {
        $expandedVersion = "4.0.30319.0"
    }
    $aspNetBaseKey = $baseRegKey.OpenSubKey("SOFTWARE\Microsoft\ASP.NET\$expandedVersion", $True)
    # Create AutoGenKeys subkey if it doesn't already exist
    $autoGenBaseKey = $aspNetBaseKey.OpenSubKey("AutoGenKeys", $True)
    if ($autoGenBaseKey -eq $null) {
        $autoGenBaseKey = $aspNetBaseKey.CreateSubKey("AutoGenKeys")
    }
    # Get the SID for the user in question, which will allow us to get his AutoGenKeys subkey
    $sid = (New-Object System.Security.Principal.WindowsIdentity($upn)).User.Value
    # SYSTEM, ADMINISTRATORS, and the target SID get full access
    $regSec = New-Object System.Security.AccessControl.RegistrySecurity
    $regSec.SetSecurityDescriptorSddlForm("D:P(A;OICI;GA;;;SY)(A;OICI;GA;;;BA)(A;OICI;GA;;;$sid)")
    $userAutoGenKey = $autoGenBaseKey.OpenSubKey($sid, $True)
    if ($userAutoGenKey -eq $null) {
        # Subkey didn't exist; create and ACL appropriately
        $userAutoGenKey = $autoGenBaseKey.CreateSubKey($sid, [Microsoft.Win32.RegistryKeyPermissionCheck]::Default, $regSec)
    } else {
        # Subkey existed; make sure ACLs are correct
        $userAutoGenKey.SetAccessControl($regSec)
    }
  }
}

Naslednji primer prikazuje, kako določiti ustrezne vnose registra HKLM za skupino aplikacij, ki se zažene kot uporabnik, example@contoso.com (to je UPN uporabniškega računa Windows). Ta aplikacijski bazen je 32-bitni aplikacijski bazen, ki izvaja CLR v 2.0 (ASP.NET 2,0 ali 3,5).

PS> Provision-AutoGenKeys -FrameworkVersion 2.0 -Architecture 32 -UPN "example@contoso.com"

Če je aplikacijski bazen namesto tega 64-bitni program za uporabo, ki izvaja CLR v 4.0 (ASP.NET 4,0 ali 4,5), je ukaz naslednji:

PS> Provision-AutoGenKeys -FrameworkVersion 4.0 -Architecture 64 -UPN "example@contoso.com"

Čeprav so ključi, ki se samodejno ustvarijo, shranjeni v HKLM, se registrski podključ, ki ima skrivni kriptografski material vsakega uporabniškega računa, doda na seznam za nadzor dostopa (ACL), tako da kriptografskega gradiva ni mogoče prebrati z drugimi uporabniškimi računi.

Dodatek C: šifriranje < machineKey > element v konfiguracijskih datotekah

Skrbniki strežnika morda ne bodo želeli zelo občutljivih informacij, kot je < machinekey > ključni material, da bi bili v konfiguracijskih datotekah v obliki čistim. V tem primeru se skrbniki lahko odločijo, da bodo izkoristili funkcijo ogrodja .NET Framework, imenovano» zaščitena konfiguracija «. S to funkcijo lahko šifrirate določene odseke datotek. config. Če je vsebina teh konfiguracijskih datotek vedno razkrita, bodo vsebine teh odsekov še vedno tajne. Na spletnem mestu MSDN lahko najdete kratek pregled zaščitene konfiguracije . Vsebuje tudi Tutorial o tem, kako zaščititi < connectionStrings > in < machineKey > elemente Web. config datoteke.

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.

Vam je bila informacija v pomoč?

Kako ste zadovoljni s kakovostjo jezika?
Kaj je vplivalo na vašo izkušnjo?
Če pritisnete »Pošlji«, bomo vaše povratne informacije uporabili za izboljšanje Microsoftovih izdelkov in storitev. Vaš skrbnik za IT bo lahko zbiral te podatke. Izjavi o zasebnosti.

Zahvaljujemo se vam za povratne informacije.

×