sitecore制作登录页面 [英] sitecore making a login page

查看:239
本文介绍了sitecore制作登录页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为我的网站创建一个登录页面,但是我在使用什么以及在何处放置可验证身份的功能以及如何跟踪会话方面感到困惑.

I want to make a loginpage for my website, but im confused in what to use and where to put the functions that would validate the authentication, and keep how can it keep track of sessions.

我应该在控制器中使用xlst吗?

Should I do it in the controller, and use xlst?

推荐答案

如果您只想创建注册页面/登录页面,建议阅读

If you are just interested in creating a registration page/ login page, I would recommend reading this article.

该文章的以下代码段向您展示了Login用户控件:

The following code snippet comes from that article, which shows you the Login usercontrol:

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用户的读取权限.然后,您可以为所有分配了特定角色的用户授予读取权限.有关更多信息,请查看 StackOverflow 问题(当然是答案)

In general: Sitecore keeps track of the logged in user for you, all you need to do is have the secure pages deny read rights for the Anonymous user. You can then allow read rights for all users with a specific role assigned to them. For more information on this, check this StackOverflow question (and it's answer, of course).

这篇关于sitecore制作登录页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆