Ejemplo n.º 1
0
        public AuthModule()
            : base("auths")
        {
            Post["/login"] = parameters =>
            {
                var authentication = new BrowserIDAuthentication();
                var verificationResult = authentication.Verify(Request.Form.assertion);
                if (verificationResult.IsVerified)
                {
                    string email = verificationResult.Email;
                    User user = null;

                    user = RavenSession.Query<User>()
                                .FirstOrDefault(x => x.Email == email);

                    if (user == null)
                    {
                        user = new User
                        {
                            Email = email,
                            UserName = email.Substring(0, email.IndexOf("@")),
                            Guid = Guid.NewGuid()
                        };

                        RavenSession.Store(user);
                    }

                    //FormsAuthentication.UserLoggedInResponse(user.Guid, DateTime.Now.AddDays(7));
                    var jsonResponseString = JsonConvert.SerializeObject(new { email = email });
                    var jsonBytes = Encoding.UTF8.GetBytes(jsonResponseString);

                    var response = this.LoginWithoutRedirect(user.Guid, DateTime.Now.AddDays(7));
                    response.ContentType = "application/json";
                    response.Contents = s => s.Write(jsonBytes, 0, jsonBytes.Length);

                    return response;
                }

                return new Response
                {
                    ContentType = "application/json",
                    Contents = null
                };
            };

            Post["/logout"] = parameters =>
            {
                var jsonResponseString = JsonConvert.SerializeObject("/");
                var jsonBytes = Encoding.UTF8.GetBytes(jsonResponseString);

                var response = this.LogoutWithoutRedirect();

                response.ContentType = "application/json";
                response.Contents = s => s.Write(jsonBytes, 0, jsonBytes.Length);

                return response;
            };
        }
Ejemplo n.º 2
0
        public ActionResult Index(string assertion)
        {
            var authentication = new BrowserIDAuthentication();
            var verificationResult = authentication.Verify(assertion);
            if (verificationResult.IsVerified)
            {
                string email = verificationResult.Email;
                FormsAuthentication.SetAuthCookie(email, false);
                return Json(new { email });
            }

            return Json(null);
        }