表单身份验证不允许访问登录页面

时间:2015-04-13 19:05:50

标签: asp.net iis form-authentication

我的asp.net 4.0 Web窗体应用程序出现问题,不允许匿名访问登录页面。

我的问题如下

  • 如果我使用URL“localhost / website / default.aspx”访问该站点,则会显示默认页面。当我单击页面上的登录按钮时,用户将按预期登录。
  • 如果我使用URL“localhost / website”访问该站点,则用户将直接进入登录页面。预期的行为是将显示“default.aspx”页面。

我正在使用VS2010在Windows 7/64上进行测试。我的web.config部分看起来像

<authentication mode="Forms">
  <forms name=".xxxxADAuthCookie" loginUrl="~/Login.aspx" timeout="45"
         defaultUrl="~/secure/Default.aspx" slidingExpiration="true" />
</authentication>
<membership defaultProvider="MyADMembershipProvider">
  <providers>
    <clear />
    <add attributeMapUsername="sAMAccountName" name="MyADMembershipProvider"
         type="xxxxx.xxxxxxFormsAuthenticationMembershipProvider" />
  </providers>
</membership>
<authorization>
  <deny users="?" />
  <allow users="*" />
</authorization>
  <location path="default.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>

2 个答案:

答案 0 :(得分:0)

检查你的Web.config:defaultUrl =&#34;〜/ secure / Default.aspx&#34; &#34; / secure /&#34;您在上述层次结构中未提及的文件夹。

另一个选择:尝试在Global.asax.cs中强制默认路由(类似这样:)

    routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new { controller = "website", action = "default", id = UrlParameter.Optional } 

答案 1 :(得分:0)

我认为您可以设置 loginUrl = defaultUrl

<forms name=".xxxxADAuthCookie" loginUrl="~/secure/Default.aspx" timeout="45"
     defaultUrl="~/secure/Default.aspx" slidingExpiration="true" />


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

再试一次。