wake-up-neo.com

web.config im Ordner, der die Authentifizierung aller oder keiner Benutzer zulässt

Ich habe einen Ordner mit mehreren Aspx-Seiten. Ich muss Berechtigungen auf diesen Aspx-Seiten festlegen. Es gibt 5 verschiedene Seiten, von denen nur bestimmte Benutzer Zugriff haben. Ich habe eine web.config-Datei hinzugefügt, um die Benutzer zuzulassen und abzulehnen, aber es funktioniert nicht. Wenn ich meinen Benutzernamen zulasse und einen deny="?" hinzufüge, habe ich keinen Zugriff. Wenn ich jedoch einen anderen Benutzer hinzufüge, nehmen Sie meinen heraus und nehmen Sie die Option zum Ablehnen. Ich erhalte die Berechtigung, mich am System anzumelden. Ich kann Zugriff erhalten, wenn ich die Ablehnung verweigere, aber dann erhalten alle Benutzer Zugriff auf die Seite. 

Hinzufügen meiner Benutzeranmeldeinformationen zu allen anonymen Benutzern und Ablehnung meines Zugangs Ich habe keinen Zugriff. Kann mir jemand bitte in die richtige Richtung weisen, was ich falsch mache? Kann es sein, dass er meine Windows-Anmeldeinformationen nicht liest oder entgegennimmt? Ich benutze Visual Studio 2012, Entity Framework.

Das habe ich getan:

   //Web Config that allows and denies:
   <?xml version="1.0"?>
        <configuration>
        <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
     </system.web>

    <location path="QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="DomainName\User2" />
        <deny users="?" /> 
      </authorization>
    </system.web>
    </location>
    </configuration>

Ich habe meinen Authentifizierungsmodus auf Windows eingestellt.

EDITEs scheint, dass die Berechtigungen falsch festgelegt wurden. Aber es funktioniert immer noch nicht. Wenn ich * ablehne, aber USER1 erlaube, erhält der Benutzer keinen Zugriff, auch wenn er mit einer Anmeldeanforderung aufgefordert wird. Die Dialogfenster des Anmeldefensters werden einfach dreimal angezeigt, auch wenn die verwendeten Benutzer Zugriff haben. es leugnen lassen? (anonym) erlaubt jedem Zugriff, auch wenn ich die Ablehnung rausnehme und nur den allow-Tag mit USER1 habe, der Rest der Benutzer hat immer noch Zugriff ... Ich bin jetzt lokal aktiv, aber sogar auf dem IIS wenn die Authentifizierung dort eingestellt wird (Windows und Standardauthentifizierung) macht genau das gleiche ....

EDIT ... Dies ist der eigentliche Code, den ich verwende. In diesem Pfad "" sind nur 3 Benutzer erlaubt. Diese web.config-Datei befindet sich im Umfrageordner mit den 5 verschiedenen Umfragetypen. Nur diese eine Umfrage sollte bestimmten Benutzern erlauben, auf die restlichen Umfragen kann jeder zugreifen .... 

     <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>

  <location path="QualityCheckSurvey.aspx">
    <system.web>

      <authorization>
        <deny users="?" />
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>

    </system.web>
  </location> 

In meinem Haupt-web.cofin im Stammverzeichnis der Anwendung habe ich den Authentifizierungsmodus auf Windows gesetzt:

     <authentication mode="Windows">

<!--<forms loginUrl="~/Account/Login.aspx" timeout="2880" />-->
    </authentication>
12
Kerieks

Bei Ihrer Frage haben Sie gesagt, Sie hätten einen Ordnernamen, aber in der web.config haben Sie nur den Dateinamen im Pfad angegeben. Verwenden Sie den Ordnernamen/Dateiname.aspx wie unten. Verwenden Sie deny users = "*" anstelle von deny users = "? '

<location path="foldername/QualityCheckSurvey.aspx">
    <system.web>
        <authorization>
            <allow users="DomainName\User2"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

EDIT

Es sieht so aus, als hätten Sie mehrere web.config-Dateien in derselben Anwendung. Um Verwirrung zu vermeiden, entfernen Sie einfach den Ordner aus dem Umfrageordner und fügen Sie diesen Code im Stammordner web.config hinzu.

 <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <authentication mode="Windows" />
    </authorization>
  </system.web>

  <location path="survey/QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location> 

Ich gehe davon aus, dass sich der Umfrageordner im Stammordner befindet. 

12
Cherian M Paul

Beheben dieses Fehlers, wenn die Windows-Authentifizierung nach der Erstellung zum Projekt hinzugefügt wird

Das ist ein Bissen. Ich hatte dieses Problem, als ich einem vorhandenen Projekt die Windows-Authentifizierung hinzufügte. Es gab ein paar wichtige Dinge, die ich machen musste, bevor es funktioniert:

1. Klicken Sie im Projektmappen-Explorer auf das Projekt und drücken Sie dann F4. Dies sollte die Projekteigenschaften öffnen. 
2. Nehmen Sie in den Projekteigenschaften und unter dem Development Server die folgenden Änderungen vor: 
- Anonyme Authentifizierung: Deaktiviert 
- Windows-Authentifizierung: Aktiviert 
3. Fügen Sie Folgendes in Web.config unter <system.web> ein:

<authorization>
  <allow users="DOMAIN\user"/>
  <deny users="*"/>
</authorization>

4. Immer noch im Web.config unter <appSettings>:

<add key="owin:AutomaticAppStartup" value="false"/>


Das hat bei mir funktioniert. Wenn ich etwas falsch mache, lass es mich wissen.
Hoffentlich hilft dies zukünftigen Personen, die nach der Erstellung des Projekts mit der Windows-Authentifizierung arbeiten.

0
Trevor Nestman
<deny users="?" /> 
<allow users="DomainName\User2" />
<deny users="*" /> 
0
Samiey Mehdi