MVC5在web.config中放置身份验证表单的位置?

时间:2017-02-22 14:07:52

标签: c# asp.net-mvc asp.net-mvc-5 forms-authentication

关注此标题后,在我的web.config中,它由VS 2012生成。

现在,我不知道我将以下代码放在web.config中的位置,因为我看到有人把它放在<system.web>但是在我的web.config中它只有<system.web.webPages.razor>和{ {1}}。当我把这段代码放在web.config的某处时,我在<system.webServer>

时收到错误

代码:

<authentication mode="Forms">

4 个答案:

答案 0 :(得分:7)

您将它放在错误的web.config文件中。有两个web.config文件。一个位于Views文件夹中,另一个位于网站的根目录中。将它放在站点根目录

中的web.config文件的system.web标记中
<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>

答案 1 :(得分:2)

您需要在配置中添加<system.web>并将身份验证部分within it

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

答案 2 :(得分:2)

如果我没弄错的话,VS只会制作它将使用的标签。您是否尝试过创建<system.web>?它不会自动生成配置的空白部分。

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

答案 3 :(得分:0)

在MVC 5中,默认值为:

<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>

您可以注意到该行

  <authentication mode="None" />

将其更改为:

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

超时=“1440”其平均值为一天