2009-08-13 16 views

Odpowiedz

12

Generalnie dajesz uprawnienia do certyfikatu. Używam metody podobnej do tej, aby znaleźć niestandardowe certyfikaty i uprawnienia dotacji. Jeśli używasz certyfikatu wydanego przez podmiot publiczny, taki jak Verisign, Thawte itp., Prawdopodobnie nie jest to konieczne.

FindPrivateKey.exe My LocalMachine –n "CN=<certificate issuer>" 

... znajdzie certyfikaty na lokalnej maszynie w osobistym sklepie dla określonego wystawcy.

Uwaga: Jeśli FindPrivateKey nie znajduje się na komputerze lokalnym, pobranie próbek WCF, w tym narzędzia FindPrivateKey na http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21459

FindPrivateKey zwraca położenie klucza prywatnego dla certyfikatu, podobnego do

"C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030". 

Uruchom następujące polecenie, aby przypisać uprawnienia dostępu tylko do odczytu do tożsamości procesowej ASP.NET/WCF Służby

cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\Machinekeys\4d657b73466481beba7b0e1b5781db81_c225a308-d2ad-4e58-91a8-6e87f354b030" /E /G "NT AUTHORITY\NETWORK SERVICE":R 

UWAGA: Jeśli korzystasz z systemu Microsoft Windows® XP, podaj uprawnienia do certyfikatu dla tożsamości ASPNET zamiast tożsamości NT Authority \ Network Service, ponieważ proces IIS działa na koncie ASPNET w systemie Windows XP.

Certyfikaty można wyświetlić z przystawki MMC dla certyfikatów. Otwórz MMC, wybierz Plik -> Dodaj/Usuń przystawkę, kliknij przycisk Dodaj i wybierz certyfikaty. Z tego miejsca będziesz musiał wybrać odpowiedni sklep (zazwyczaj konto komputera - komputer lokalny dla elementów ASP.NET) do zarządzania, a następnie możesz przeglądać/zarządzać certyfikatami.

Proszę dokładnie zapoznać się z różnymi opcjami wiersza poleceń i upewnić się, że dokładnie wiesz, jakie certyfikaty są i jak działają przed przyznaniem jakichkolwiek uprawnień.

+0

Dzięki, znalazłem te informacje bardzo przydatne. –

+1

Składnia dla icacls.exe to: icacls.exe file/grant "użytkownik" :(R) – funwhilelost

+5

Aby wyświetlić i ustawić uprawnienia z MMC, kliknij prawym przyciskiem myszy potrzebny certyfikat, z menu kontekstowego wybierz Wszystkie zadania .. -> Zarządzaj kluczami prywatnymi ... –

-7

Nie lubię odpowiadać na własne pytania, ale jednym z prostych sposobów na pozbycie się tego błędu jest zapewnienie usługi sieciowej pełnego dostępu do dysku c: \ i propagowanie uprawnień w dół.

Zestrzelisz mnie Wiem, mówiąc mi, jakie to złe - ale działa.

+12

-1 - jest to taka zła rada, powinien być całkowicie pochowany –

+0

Uzgodnione, to bardzo niebezpieczna praktyka. – Trinition

+0

To rozwiązanie jest odpowiednie tylko do testowania i tylko tymczasowo. – ashes999

9

Konto usługi sieciowej, na którym działa asp.net domyślnie, nie ma dostępu do certyfikatów osobistych komputera lokalnego.Udzielenia dostępu brzmienie:

Repost od Sohnee @ forums.asp.net

Krok 1 - jeśli nie masz to zainstalowany - dostać WinHttpCertCfg

Krok 2 - jeśli masz już zainstalowany CERTYFIKAT na maszynie i musisz tylko przyznać dostęp do usługi Usługi sieciowe:

WinHttpCertCfg.exe -g -c LOCAL_MACHINE \ Moje -s "IssuedToName" -a "sieciowa"

+1

Czuję się teraz dumny :) – Fenton

+0

Sohnee, Twoja odpowiedź zaoszczędziła mi ogromnej ilości pracy. Dziękuję Ci!!! – TomZ

+0

Program WinHttpCertCfg nie działa w systemie Windows 7. –

Powiązane problemy