2013-04-24 64 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問題(當然,這是答案)。