コード例 #1
0
ファイル: UsersController.cs プロジェクト: olegkaliuga/ors
        public async Task<JsonResult> Create(UserModel userModel)
        {

            if (!ModelState.IsValid) return Json(new { result = "Validation error" });

            AppUser user = new AppUser {
                UserName = userModel.UserName,
                FirstName = userModel.FirstName,
                LastName = userModel.LastName,
                Email = userModel.Email
            };

            var result = await UserManager.CreateAsync(user);

            if (result.Succeeded)
            {

                string token = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                string baseUrl = GetBaseUrl();

                string url = baseUrl + "account/activate?token=" + token;

                SendActivateEmail(url);

                var tt = await UserManager.AddToRoleAsync(user.Id, userModel.Role);

                return Json(new { result = "Success" });
            }

            return Json(new { result = "Failed to create user" });
            
        }
コード例 #2
0
ファイル: AppTokenProvider.cs プロジェクト: olegkaliuga/ors
        public string GenerateToken(string purpose, AppUser user)
        {
            if (user == null) throw new ArgumentNullException();

            byte[] encrypted;

            using (AesCryptoServiceProvider AesProvider = new AesCryptoServiceProvider())
            {
                AesProvider.Key = _key;
                AesProvider.IV = _iv;

                ICryptoTransform encryptor = AesProvider.CreateEncryptor(AesProvider.Key, AesProvider.IV);

                using (MemoryStream memoryStream = new MemoryStream())
                {
                    using (CryptoStream csEncrypt = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
                    {
                        using (StreamWriter srWriter = new StreamWriter(csEncrypt))
                        {
                            srWriter.WriteLine(DateTimeOffset.UtcNow.ToString(DateTimeFormatInfo.InvariantInfo.UniversalSortableDateTimePattern, DateTimeFormatInfo.InvariantInfo));
                            srWriter.WriteLine(purpose);
                            srWriter.WriteLine(user.Id);

                        }

                        encrypted = memoryStream.ToArray();
                    }
                }
            }

            return HttpServerUtility.UrlTokenEncode(encrypted);
        }