2013-04-24 62 views
1

我想为我的网站制作一个登录页面,但是我不知道要在什么地方使用以及在哪里放置验证身份验证的功能,并且要保持它如何跟踪会话。sitecore制作登录页面

我应该在控制器中做,并使用xlst?

回答

3

如果您只是想创建注册页面/登录页面,我会推荐阅读this article

下面的代码片段来自于文章,说明你的登录用户控件:

public partial class Login : System.Web.UI.UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     /*--- Set the navigation url for the Register hyperlink ---*/ 
     var registerHyperLink = (HyperLink)uxLogin.FindControl("RegisterHyperLink"); 
     registerHyperLink.NavigateUrl = "~/Register.aspx?ReturnUrl=" + HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]); 

     uxLogin.RememberMeSet = false; 

     if (!IsPostBack) 
     { 
      /*--- Restore remembered username(?) ---*/ 
      var c = Request.Cookies["username"]; 

      if (c == null) 
      { 
       uxUsernameTextBox.Text = ""; 
      } 
      else 
      { 
       uxUsernameTextBox.Text = c.Value; 
       uxLogin.RememberMeSet = true; 
      } 
     } 
    } 

    protected TextBox uxUsernameTextBox { get { return uxLogin.FindControl("UserName") as TextBox; } } 

    protected void uxLogin_LoggedIn(object sender, EventArgs e) 
    { 
     /*--- Inits ---*/ 
     var url = Request.QueryString["url"]; 

     /*--- Remember/Forget Username ---*/ 
     if (uxLogin.RememberMeSet) 
      Response.SetCookie("username", uxUsernameTextBox.Text, 365); 
     else 
      Response.DeleteCookie("username", Request); 

     /*--- Redirect (?) ---*/ 
     if (url == null) 
     { 
      Response.Redirect("~/"); // Main page for authenticated users 
     } 
     else 
     { 
      var url2 = Server.UrlDecode(url); 
      Response.Redirect(url2); 
     } 
    } 

    /* This field and the LoggingIn and LoginError event procedures place the user 
     in the correct domain for the current site. This way the user doesn't have 
     to specify the domain, logging in (for example) as "johndoe" instead of 
     "domain\johndoe". */ 

    private string _usernameEntered = string.Empty; 

    protected void uxLogin_LoggingIn(object sender, LoginCancelEventArgs e) 
    { 
     var domainUser = Sitecore.Context.Domain.GetFullName(uxLogin.UserName); 

     if (System.Web.Security.Membership.GetUser(domainUser) != null) 
     { 
      _usernameEntered = uxLogin.UserName; 
      uxLogin.UserName = domainUser; 
     } 
    } 
    protected void uxLogin_LoginError(object sender, EventArgs e) 
    { 
     uxLogin.UserName = _usernameEntered; 
    } 
} 

一般:Sitecore的跟踪登录用户的你,所有你需要做的是有安全页面拒绝Anonymous用户的阅读权限。然后,您可以为分配有特定角色的所有用户授予读取权限。有关这方面的更多信息,请检查this StackOverflow问题(当然,这是答案)。