2011-02-01 78 views

回答

2

根据引用的博客文章,您的自定义登录页面应该从FormsSignInPage继承。我看了一下Reflector中的类,没有看到任何会导致403错误的东西。然而,在寻找它的父,IdentityModelSignInPageBase,我发现在OnLoad方法如下:

protected override void OnLoad(EventArgs e) 
{ 
    this.Context.Request.ServerVariables["FederationLoginPageRequest"] = "1"; 
    if (this.CheckForFormsAccess 
     && (AuthenticationMode.Forms != SPSecurity.AuthenticationMode)) 
    { 
     SPUtilityInternal.Send403(this.Context); 
    } 
    if (!this.AllowCaching) 
    { 
     base.Response.Cache.SetNoStore(); 
    } 
    base.ShowStandardControls = false; 
    base.OnLoad(e); 
} 

CheckForFormsAccess始终是真实的,所以请确保您Authentication Mode设置为形式。

+0

这似乎是一个很好的答案,我会尽快调查。 – frbry 2011-02-02 09:22:00

1

您可能被重定向到403,因为匿名用户无法显示自定义错误页面。

日志文件可以让你知道为什么发生这种情况。

或者:

在web.config文件中(一个用于Web应用程序&一个在_layouts文件夹)设置如下:

的customErrors = “关” 调试= “真” 调用堆栈= “true”

相关问题