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")); }
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))); }
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); }