Bardzo prostą formę uwierzytelniania ze statyczną nazwą użytkownika i hasłem można uzyskać, stosując uwierzytelnianie i autoryzację ASP.NET, zintegrowane z usługami IIS zgodnie z opisem w tym artykule: Apply ASP.NET Authentication and Authorization Rules to Static Content with IIS 7.0's Integrated Pipeline Feature.
Se this sample GitHub project na przykład. Odpowiednie fragmenty kodu są to plik Web.config, który należy umieścić w katalogu głównym (co byłoby publiczne):
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false" />
<authentication mode="Forms">
<forms>
<credentials passwordFormat="Clear">
<user name="Alice" password="secret" />
</credentials>
</forms>
</authentication>
<!-- Unless specified in a sub-folder's Web.config file,
any user can access any resource in the site -->
<authorization>
<allow users="*" />
</authorization>
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
<add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />
<remove name="UrlAuthorization" />
<add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />
</modules>
</system.webServer>
</configuration>
A ten plik Web.config, które można umieścić w podkatalogu (co byłoby ograniczona):
<?xml version="1.0"?>
<configuration>
<system.web>
<!-- Anonymous users are denied access to this folder (and its subfolders) -->
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
trzeba również plik Login.aspx z formularza HTML i logiki po stronie serwera uwierzytelniania. Zobacz przykład Login.aspx w przykładowym projekcie.
W ten sposób będziesz mógł przechowywać zarówno publiczne pliki na poziomie root, jak i prywatne pliki w podkatalogach. Jeśli chcesz chronić nawet poziom główny, dostosuj odpowiednio reguły autoryzacji.
Dokumentację na temat opcji konfiguracji, patrz te strony MSDN:
Dzięki za sugestie. Wypróbuję to i odpiszę. –
To działa. Dzięki Fernando. Jeszcze jedno pytanie, jeśli nie masz nic przeciwko. Chciałbym chronić wszystkie pliki nawet na poziomie root.Więc zmieniłem najpierw Web.config (który jest na poziomie root) w następujący sposób: ' '. Teraz, kiedy wchodzę na http://mysite.azurewebsites.net/index.html, przekierowuje się do Login.aspx, więc działa poprawnie. Kiedy jednak przejdę do http://mysite.azurewebsites.net/ (bez określenia index.html), wyświetli on index.html, ale bez żadnych stylów ani obrazów. Nigdy nie pracowałem z usługami IIS i .NET, więc czy możesz to szybko poprawić? Dzięki. –
Naprawiliśmy ten problem, dodając ' ',' '. Jeszcze raz dziękuję, Fernando, za odpowiedź. –