2010-09-02 11 views
34

Używam uwierzytelniania formularzy ASP.Net. Mój Web.config wygląda tak.Zezwalaj na dostęp nieuwierzytelnionym użytkownikom do określonej strony przy użyciu uwierzytelniania formularzy ASP.Net

<authentication mode="Forms"> 
     <forms loginUrl="login.aspx"/> 
    </authentication> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 

Obecnie każda strona aspx wymaga uwierzytelnienia.

Chcę umożliwić dostęp nawet nieuwierzytelnionym użytkownikom do określonej strony o nazwie special.aspx. Jak mogę to zrobić?

+0

Czy kiedykolwiek wymyśliłeś ten jeden? –

Odpowiedz

44

Spójrz na przykład na MS Support

<configuration> 
    <system.web> 
     <authentication mode="Forms" > 
      <forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" > 
      </forms> 
     </authentication> 
<!-- This section denies access to all files in this 
application except for those that you have not explicitly 
specified by using another setting. --> 
     <authorization> 
      <deny users="?" /> 
     </authorization> 
    </system.web> 
<!-- This section gives the unauthenticated 
user access to the ThePageThatUnauthenticatedUsersCanVisit.aspx 
page only. It is located in the same folder 
as this configuration file. --> 
     <location path="ThePageThatUnauthenticatedUsersCanVisit.aspx"> 
     <system.web> 
     <authorization> 
      <allow users ="*" /> 
     </authorization> 
     </system.web> 
     </location> 
<!-- This section gives the unauthenticated 
user access to all of the files that are stored 
in the TheDirectoryThatUnauthenticatedUsersCanVisit folder. --> 
     <location path="TheDirectoryThatUnauthenticatedUsersCanVisit"> 
     <system.web> 
     <authorization> 
      <allow users ="*" /> 
     </authorization> 
     </system.web> 
     </location> 
</configuration> 
+0

Podczas korzystania z tej techniki dla '' umożliwia nieuwierzytelnionemu użytkownikowi dostęp do określonej strony, którą chcę ("yay"), ale wciąż prosi o podanie swoich danych uwierzytelniających? Możesz go zamknąć i wyświetlić stronę, ale zastanawiam się, jak wyłączyć "Wymagane uwierzytelnienie" dla konkretnej strony? –

+0

@TrevorNestman ładujesz inne zasoby na stronie, takie jak obrazy itp.? Prawdopodobnie prosi o uwierzytelnienie. – dnolan

+0

@dnolan dzięki za odpowiedź. Udało mi się to rozgryźć. Pytam o to, jaką rolę pełnią w widoku, więc jestem prawie pewien, że to właśnie podpowiadało. –

15

umieścić następujące w Twojej web.config:

<location path="special.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
2

umożliwić wszystkim dostęp do danej strony

Czasami chcesz zezwolić na dostęp publiczny do pewnego stronie i chce ograniczyć dostęp do reszty strony tylko dla zalogowanych użytkowników .i.e/uwierzytelnione. nie zezwalaj na anonimowy dostęp. Powiedz, że plik special.aspx znajduje się w folderze głównym witryny. W web.config folderu głównego twojej witryny musisz mieć następującą konfigurację.

<configuration> 
    <system.web> 

    <authentication mode="Forms"/> 

     <authorization> <deny users="?"/> //this will restrict anonymous user access 
     </authorization> 

    </system.web> 
    <location path="special.aspx"> //path here is path to your special.aspx page 
    <system.web> 
    <authorization> 
    <allow users="*"/> // this will allow access to everyone to special.aspx 

</authorization> 
</system.web> 
</location> 
</configuration> 
Powiązane problemy