1

我有一个基于简单身份验证模型的网站。它在本地和本地 IIS 上运行良好,但在输入正确的凭据后它没有重定向到默认页面,所有这些都在测试服务器中。

代码如下。

网页配置

<compilation targetFramework="4.0" />
        <httpRuntime maxRequestLength="50000" />
        <customErrors mode="On" defaultRedirect="exc/exc.aspx?e=1">
            <error statusCode="404" redirect="exc/404.aspx?e=404"/>
        </customErrors>
        <authentication mode="Forms">
            <forms loginUrl="admin/login.aspx" defaultUrl="admin/main.aspx" />
        </authentication>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
    <location path="admin">
        <system.web>
            <authorization>
                <deny users="?"/>
            </authorization>
        </system.web>
    </location>
    <location path="admin/css/cms.css">
        <system.web>
            <authorization>
                <allow users="?"/>
            </authorization>
        </system.web>
    </location>
    <location path="admin/css/styles.css">
        <system.web>
            <authorization>
                <allow users="?"/>
            </authorization>
        </system.web>
    </location>
    <location path="admin/images">
        <system.web>
            <authorization>
                <allow users="?"/>
            </authorization>
        </system.web>
    </location>
    <location path="exc/exc.aspx">
        <system.web>
            <authorization>
                <allow users="?"/>
            </authorization>
        </system.web>
    </location>

登录.aspx

表单操作属性为空且 AutoEventWireup 为真。

登录.aspx.cs

protected void btnAuth_Click1(object sender, EventArgs e)
{
        //Some code not shown...

        //User Validation
            ValidateUserResponse response = new ValidateUserResponse();
            response = service.ValidateUser(request);

            if (response.State == true)
                FormsAuthentication.RedirectFromLoginPage(request.Alias, False);            
}

登出

protected void Page_Load(object sender, EventArgs e)
{           
            FormsAuthentication.SignOut();
            Response.Redirect(FormsAuthentication.LoginUrl);            
}

在测试服务器上,URL 如下所示:

http://192.168.1.58/TestSite/admin/login.aspx

在 VS2010 上,一旦发布,在我的本地 IIS 上也能正常工作,但不明白为什么在 TestServer 上发布后登录后不重定向到默认页面。显示该网站需要登录并出现 403 禁止错误

在本地,我已经使用 URL 形式和作品对其进行了测试(虚拟文件夹名称不同):

http://192.168.1.58/TestSite1/admin/login.aspx

http://localhost/TestSite1/admin/login.aspx

我将不胜感激有关此事的任何建议,以使其发挥作用。

谢谢你。

- - - - - 更新 - - - - - -

我这样解决了这个问题:

  1. 右键单击包含 WebApp 的虚拟目录
  2. 转到目录安全选项卡
  3. 点击修改
  4. 未选中的集成 Windows 身份验证
  5. 还必须检查匿名访问

这使得 Web.Config 上的 WebForms 身份验证设置开始对 WebApp 产生影响。

谢谢你。

4

1 回答 1

1

确保在 Web 服务器上的 IIS 中启用表单身份验证。

于 2013-02-28T14:37:46.143 回答