Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

能否不开发模块或插件实现会员注册和登录功能?
baiwen1979
#1 Posted : Sunday, October 16, 2011 3:17:44 PM(UTC)
Rank: Newbie
Groups: Registered

Joined: 9/21/2011(UTC)
Posts: 5
Location: taiyuan
你好, 我想通过创建会员信息的内容类型(ContentType):MemberUser及文件夹MemberUsers来保存会员的信息。那么如何不开发模块和插件的情况下,创建会员注册表单视图和会员登录表单视图来实现注册和登录功能呢,会话状态可以用Session来保存,但登录时的身份验证如何实现更好呢?虽然这可以通过查询实现,但在视图里创建查询时,查询参数的值(如{UserKey})都是来自查询串,似乎不是来自表单。
jifeng
#2 Posted : Monday, October 17, 2011 1:30:29 AM(UTC)
Rank: Administration
Groups: Administrators, Registered

Joined: 9/3/2009(UTC)
Posts: 1,552
Location: Xiamen China
你可以写一个PagePlugin,很简单的实现这个功能,我给一个简单例子吧:
Code:



public class ValidateUser : IPagePlugin
    {
        public TextContent ValidateUser(string userName, string passWord)
        {
            var textFolder = new TextFolder(Repository.Current, "User_Identity");
            var query = textFolder.CreateQuery().WhereEquals("Username", userName).WhereEquals("Password", passWord);
            return query.FirstOrDefault();

        }
        public string Description
        {
            get { return "Validate User Plugin"; }
        }

        public System.Web.Mvc.ActionResult Execute(Kooboo.CMS.Sites.View.Page_Context pageContext, Kooboo.CMS.Sites.View.PagePositionContext positionContext)
        {
            var request = pageContext.ControllerContext.RequestContext.HttpContext.Request;
            if (string.Equals(request.HttpMethod, "post", StringComparison.OrdinalIgnoreCase))
            {
                var entry = new JsonResultEntry();
                entry.Success = false;
                try
                {
                    var user = ValidateUser(request["username"], request["passwordLog"]);
                    pageContext.ControllerContext.HttpContext.Session["UserInfo"] = user;
                    var result = user != null;
                    entry.Model = result;
                    if (result)
                    {
                        var privateArea = pageContext.FrontUrl.PageUrl("privateArea");
                        entry.RedirectUrl = privateArea.ToString();
                    }

                    entry.SetSuccess();

                }
                catch (Exception e)
                {
                    entry.AddException(e);
                }
                JsonResult jsonResult = new JsonResultEx(pageContext.ControllerContext.HttpContext.Request.ContentType);
                jsonResult.Data = entry;
                return jsonResult;
            }
            return null;
        }
    }

Regards,

Jifeng Huang

Kooboo Team

Microsoft ASP.NET MVP
Users browsing this topic
Guest
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

Powered by YAF 1.9.5.5 | YAF © 2003-2011, Yet Another Forum.NET
This page was generated in 0.039 seconds.