Exemplo n.º 1
0
        /// <summary>
        /// Creates a new chat room for the specified client
        /// </summary>
        /// <returns></returns>
        public ChatRoom CreateChatRoom(int _clientId, string _name = null)
        {
            var room = new ChatRoom {
                MaxUsers = 2,
                Name     = (_name == null) ? WebTools.GetRandomText(6) : _name,
                OwnerId  = _clientId
            };

            chatRooms.Add(room);

            return(room);
        }
Exemplo n.º 2
0
        public ActionResult OpenId(FormCollection form)
        {
            string url    = "https://rpxnow.com/api/v2/auth_info";
            string apiKey = "510a0b6164005bbda028dc3a893d276dbd102b1b";
            string token  = form["token"];

            var clnt = new WebClient();

            clnt.QueryString.Add("apiKey", apiKey);
            clnt.QueryString.Add("token", token);

            string jsonResult = null;

            try {
                jsonResult = clnt.DownloadString(url);
            }
            catch (Exception) {
                TempData["Message"] = "Falha ao efetuar o login. Por favor, tente novamente.";
                return(RedirectToAction("Login"));
            }

            var jss         = new JavaScriptSerializer();
            var profileData = jss.Deserialize <OpenIdResult>(jsonResult);

            if (profileData.stat != "ok")
            {
                TempData["Message"] = "Falha ao efetuar o login";
                return(RedirectToAction("Login"));
            }

            var username = profileData.profile.identifier;

            if (Membership.GetUser(username) == null)
            {
                MembershipCreateStatus membershipCreateStatus;

                MembershipUser user = Membership.CreateUser(
                    username,
                    WebTools.GetRandomText(),
                    profileData.profile.email,
                    "Esta é uma conta do tipo OpenID. Você deve utilizar seu OpenID para se logar.",
                    WebTools.GetRandomText(),
                    true,
                    out membershipCreateStatus);

                if (membershipCreateStatus != MembershipCreateStatus.Success)                   // failed
                {
                    TempData["_FORM"] = ErrorCodeToString(membershipCreateStatus);

                    return(RedirectToAction("Login"));
                }

                user.Comment = profileData.profile.preferredUsername;

                Membership.UpdateUser(user);
            }

            var theUser = Membership.GetUser(username);

            if (theUser != null)
            {
                TempData["Message"] = "Bem vindo(a), " + theUser.UserName + ".";
            }

            FormsAuthentication.RedirectFromLoginPage(username, false);

            string returnUrl = Request.Form["returnUrl"];

            if (!String.IsNullOrEmpty(returnUrl) &&
                !returnUrl.EndsWith("Login"))
            {
                return(Redirect(returnUrl));
            }

            return(RedirectToAction("Index", "Home"));
        }