表单身份验证web.config设置

时间:2009-12-08 11:00:56

标签: asp.net

根web.config文件中的此规范是否正确?我没有在受保护的文件夹中使用子web.config。

<system.web>
  <authentication mode="Forms">
    <forms name=".ASPXAUTH" loginUrl="">
    </forms>
  </authentication>
</system.web>

然后另一个system.web规范也在root web.config中:

<location path="to protected folder">
  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

3 个答案:

答案 0 :(得分:7)

您应该使用以下元素设置web.config。

<configuration>
    <system.web>
        <authentication mode="Forms">
          <forms name="SiteName" path="/" loginUrl="~/Login.aspx" protection="All" timeout="30" />
        </authentication>
    </system.web>
</configuration>

您可以通过放置拒绝匿名访问的web.config来保护文件夹。

<configuration>
  <system.web>
    <!-- Place in a sub folder that you want to protect using Forms Authentication -->
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
</configuration>

答案 1 :(得分:2)

Web.config在子文件夹中级联,您的假设是正确的,请使用登录URL

<authentication mode="Forms">
    <forms defaultUrl="~/Step1.aspx" loginUrl="~/Signup.aspx" slidingExpiration="true" timeout="1000">
      <credentials passwordFormat="Clear">
        <user name="admin" password="123.admin"/>
      </credentials>
    </forms>
</authentication>
<authorization>
    <allow users="admin" />
    <deny users="?"/>
</authorization>

答案 2 :(得分:0)

在system.web标记下的配置标记和认证元素下添加connectionStrings元素。

<connectionStrings>
<add name="cs"connectionString="Data source=server_name; Initial Catalog=database_name;  User Id=user_id; Password=user_password" providerName="System.Data.SqlClient" />
</connectionStrings> 

<authentication mode="Forms">
     <forms loginUrl="~/Home/LogOn"defaultUrl="~/Home/Home"timeout="2880" />
</authentication>

这是一个有效的Example