SharePoint -custom登录页面

时间:2010-09-28 15:36:30

标签: sharepoint

我在WSS 3.0上运行CMS网站。

我想为发布商提供自定义登录页面。除了Welcome控件之外,我还有其他任何替代方案吗? (例如,我可以使用ASP.NET登录控件吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

这取决于您使用的身份验证机制。如果您使用的是Active Directory,则几乎与Welcome控件绑定在一起。 但是,如果您使用的是基于表单的身份验证,则可以更完整地控制登录页面。 FBA可能很难配置,如果可以,我建议你继续使用AD,但如果你必须去FBA,这里有一个很好的指南:

http://technet.microsoft.com/en-us/library/cc262201(office.12).aspx

答案 1 :(得分:1)

这真的不是很难。 只有基于表单的经过身份验证的站点不是基于Windows的,才会发生这种情况,然后您必须修改login.aspx页面。

这依赖于12个hive的_layouts文件夹。所以你必须修改它。 最好的方法是,对_layouts文件夹,制作它的副本并将其粘贴到磁盘中的某个位置,然后将_layouts文件夹的站点的IIS属性中的位置更改为复制的文件夹。并对该登录页面进行更改。

要记住的要点:它使用母版页,需要5或6个customplaceholders。所以请将它们放在新的母版页中。

接下来是关于登录控制工作的代码behing。 如果您要自定义登录代码。然后你必须修改

这是一个例子:

使用System; 使用System.Web.Security; 使用System.Web.UI.WebControls;

命名空间CustomLoginPage {   公共课登录:     Microsoft.SharePoint.WebControls.UnsecuredLayoutsPageBase     {       protected System.Web.UI.WebControls.Login loginBox;       protected override bool AllowAnonymousAccess {get {return true; } }       protected override bool AllowNullWeb {get {return true; }}

  protected void Login_Click(object sender, EventArgs e)
    {
    if (AuthenticateUser(loginBox.UserName, loginBox.Password)) 
      return;
    }
    protected bool AuthenticateUser(string emailAddr, 
      string password)
    {
      string userName = emailAddr;
      MembershipUserCollection coll = 
        Membership.FindUsersByEmail(emailAddr);
      if (coll != null && coll.Count == 1)
      {
        // We're doing this to force the enumerator to give us the 
        // one and only item because there is no by int indexer
        foreach (MembershipUser user in coll)
        {
          userName = user.UserName;
        }
      }
      if (Membership.ValidateUser(userName, password))
      {
      FormsAuthentication.RedirectFromLoginPage(userName, true);
        return true;
        }
        return false;
    }
}

}

所以请修改它。

我执行此操作的一个Url是:

http://www.devx.com/enterprise/Article/35068/1954

如果您遇到任何问题,请继续。随时与我联系:ankurmadaan2787@live.in

答案 2 :(得分:0)

下面的答案非常有用 - 但我担心我的环境有限(WSS 3.0,共享托管)。

所以我只是添加了这个链接,打开了身份验证对话框:

<a href="/_layouts/Authenticate.aspx?Source=/_layouts/settings.aspx">Sign in</a>

(其中Source参数指示在身份验证时重定向到的URL。)

谢谢。