Exemple #1
0
        public ActionResult ChallengeEmail(string nonce)
        {
            string appKey = null;
            var    user   = _profileService.ValidateChallenge(nonce, out appKey);

            if (user != null)
            {
                _userEventHandler.ConfirmedEmail(user);
                ApplicationRecord app = _applicationsService.GetApplicationByKey(appKey);
                if (app == null)
                {
                    return(RedirectToAction("ChallengeEmailSuccess"));
                }
                else
                {
                    if (!_detectMobileService.isMobileBrowser(Request.UserAgent))
                    {
                        return(RedirectToAction("ChallengeEmailSuccess"));
                    }
                    else
                    {
                        string protocol = _applicationsService.GetApplicationProtocol(app.Id);
                        return(Redirect(protocol + "challengeemailsuccess?user="******"ChallengeEmailFail"));
        }
Exemple #2
0
        public HttpResponseMessage Login(Login login)
        {
            IUser user = _orchardServices.WorkContext.CurrentUser;

            ApplicationRecord apprecord = _applicationsService.GetApplicationByKey(login.ApiKey);

            if (apprecord == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, new uError("Not Found", 404)));
            }

            if (user != null)
            {
                IUser newUser = ValidateLogOn(login);
                if (newUser != null && newUser.Id == user.Id)
                {
                    Contrib.Foundation.UserProfile.OData.Profile profile = new Contrib.Foundation.UserProfile.OData.Profile(user, Request, _loginsService.GetHash(user.As <UserProfilePart>(), apprecord));
                    _orchardServices.WorkContext.HttpContext.Session["doticca_aid"] = apprecord.Id;
                    return(Request.CreateResponse(HttpStatusCode.OK, profile));
                }
                else
                {
                    LogOut();
                }
            }
            user = ValidateLogOn(login);
            if (user != null)
            {
                UserProfilePart profilePart = user.As <UserProfilePart>(); //_profileService.Get(user).As<UserProfilePart>();
                _profileService.CreateUserForApplicationRecord(profilePart, apprecord);
                _authenticationService.SignIn(user, false);
                _userEventHandler.LoggedIn(user);
                string newHash = login.Hash;
                if (string.IsNullOrWhiteSpace(newHash))
                {
                    newHash = _loginsService.CreateHash(profilePart, apprecord);
                }

                Contrib.Foundation.UserProfile.OData.Profile profile = new Contrib.Foundation.UserProfile.OData.Profile(user, Request, newHash);
                _orchardServices.WorkContext.HttpContext.Session["doticca_aid"] = apprecord.Id;
                return(Request.CreateResponse(HttpStatusCode.OK, profile));
            }
            _orchardServices.WorkContext.HttpContext.Session.Remove("doticca_aid");
            return(Request.CreateResponse(HttpStatusCode.Unauthorized, new uError("User not authorized", 401)));
        }
Exemple #3
0
        public IUser ValidateChallenge(string nonce, out string appKey)
        {
            string username;
            string appkey;

            appKey = null;
            DateTime validateByUtc;

            if (!DecryptNonce(nonce, out username, out validateByUtc, out appkey))
            {
                return(null);
            }

            if (validateByUtc < _clock.UtcNow)
            {
                return(null);
            }

            var user = _membershipService.GetUser(username);

            if (user == null)
            {
                return(null);
            }

            user.As <UserPart>().EmailStatus = UserStatus.Approved;
            appKey = appkey;

            ApplicationRecord apprecord = _applicationsService.GetApplicationByKey(appkey);

            if (apprecord == null)
            {
                return(user);
            }

            CreateUserForApplicationRecord(user.As <UserProfilePart>(), apprecord);

            return(user);
        }