2017-02-22 2 views
1

diesen Titel in meinem web.config, ist es, die von VS 2012MVC5 Wo können Authentifizierungsformulare in web.config abgelegt werden? mein

Jetzt i Folgen, weiß nicht, wo ich den Code unten in web.config durch i jemand es in <system.web> setzen sah setzen, aber in web.config hat es nur <system.web.webPages.razor> und <system.webServer>. Wenn ich diesen Code setzen irgendwo in web.config bekomme ich einen Fehler bei <authentication mode="Forms">:

Es Code ist:

<authentication mode="Forms"> 
    <forms loginurl="~/Comfirm/Login" timeout="2880"></forms> 
</authentication> 
+1

Sie setzen es in die falsche web.config-Datei. Es gibt zwei web.config-Dateien. eine im Ordner "Views" und eine im Stammverzeichnis der Site. Fügen Sie es in das system.web-Tag der Konfigurationsdatei im Site-Root ein. – Nkosi

+0

@Nkosi oh mein Gott, 9:36 Uhr, mein Fehler. Es ist gelöst. Vielen Dank ! – user1465351

Antwort

4

Sie fügen es in die falsche web.config-Datei ein. Es gibt zwei web.config-Dateien. eine in Views Ordner und eine im Stammverzeichnis der Website. steckt es in dem system.web Tag der web.config-Datei im Stammordner

<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    </configSections> 
    <connectionStrings /> 
    <appSettings > 
    <add key="webpages:Version" value="3.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="owin:AutomaticAppStartup" value="true" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings>  

    <system.web> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Comfirm/Login" timeout="2880" /> 
    </authentication> 
    </system.web> 

    <!--other configuration--> 
<configuration> 
+0

Vielen Dank. Mein Fehler ! – user1465351

1

Sie müssen <system.web> auf die Config hinzuzufügen und den Authentifizierungs-Abschnitt setzen within it:

<system.web> 
    <authentication mode="Forms"> 
     <forms loginurl="~/Comfirm/Login" timeout="2880"></forms> 
    </authentication> 
</system.web> 
+0

Ich versuche, aber ich bekomme einen Fehler: Es ist ein Fehler, einen Abschnitt zu verwenden, der als allowDefinition = 'MachineToApplication' über die Anwendungsebene hinaus registriert ist. Dieser Fehler kann durch ein virtuelles Verzeichnis verursacht werden, das nicht als Anwendung in IIS konfiguriert ist. – user1465351

+0

Haben Sie es in der web.config im Stammverzeichnis der App hinzugefügt? – stuartd

+0

uhm, ich habe nach dem Tag hinzugefügt – user1465351

1

Wenn ich mich nicht irre, macht VS nur die Tags, die es verwenden wird. Haben Sie versucht, <system.web> zu erstellen? Es wird nicht automatisch leere Abschnitte zur Konfiguration generieren.

<system.web> 
    <authentication mode="Forms"> 
     <forms loginurl="~/Comfirm/Login" timeout="2880"></forms> 
    </authentication> 
</system.web> 
+0

Ich versuche, aber ich bekomme einen Fehler: Es ist ein Fehler, einen Abschnitt zu verwenden, der als allowDefinition = 'MachineToApplication' über die Anwendungsebene hinaus registriert ist. Dieser Fehler kann durch ein virtuelles Verzeichnis verursacht werden, das nicht als Anwendung in IIS konfiguriert ist. – user1465351

+0

@ user1465351 Wenn Sie diesen Fehler erhalten, verwenden Sie die falsche Datei 'web.config'. – Andrew

0

in MVC 5 ist der Standardwert:

<system.web> 
<authentication mode="None" /> 
<compilation debug="true" targetFramework="4.7.1" /> 
<httpRuntime targetFramework="4.7.1" /> 
<httpModules> 
    <add name="ApplicationInsightsWebTracking" 
    type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, 
Microsoft.AI.Web" /> 
</httpModules> 
</system.web> 

Sie bemerken, können die Linie

<authentication mode="None" /> 

Ändern Sie es in:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" timeout="1440" /> 
</authentication> 

Und Timeout = "1440" es ist ein Tag

Verwandte Themen