Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Threading.Tasks;
- using Microsoft.AspNet.Identity;
- using Microsoft.AspNet.Identity.EntityFramework;
- using Microsoft.AspNet.Identity.Owin;
- using Microsoft.Owin;
- using ProjekatRad.Models;
- using SendGrid;
- using System.Net;
- using System;
- using System.Diagnostics;
- using System.Configuration;
- namespace ProjekatRad
- {
- // Configure the application user manager used in this application. UserManager is defined in ASP.NET Identity and is used by the application.
- public class ApplicationUserManager : UserManager<ApplicationUser>
- {
- public ApplicationUserManager(IUserStore<ApplicationUser> store)
- : base(store)
- {
- }
- public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
- {
- var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
- // Configure validation logic for usernames
- manager.UserValidator = new UserValidator<ApplicationUser>(manager)
- {
- AllowOnlyAlphanumericUserNames = false,
- RequireUniqueEmail = true
- };
- // Configure validation logic for passwords
- manager.PasswordValidator = new PasswordValidator
- {
- RequiredLength = 6,
- RequireNonLetterOrDigit = false,
- RequireDigit = true,
- RequireLowercase = true,
- RequireUppercase = true,
- };
- // Register two factor authentication providers. This application uses Phone and Emails as a step of receiving a code for verifying the user
- // You can write your own provider and plug in here.
- manager.RegisterTwoFactorProvider("PhoneCode", new PhoneNumberTokenProvider<ApplicationUser>
- {
- MessageFormat = "Your security code is: {0}"
- });
- manager.RegisterTwoFactorProvider("EmailCode", new EmailTokenProvider<ApplicationUser>
- {
- Subject = "Security Code",
- BodyFormat = "Your security code is: {0}"
- });
- manager.EmailService = new EmailService();
- manager.SmsService = new SmsService();
- var dataProtectionProvider = options.DataProtectionProvider;
- if (dataProtectionProvider != null)
- {
- manager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
- }
- return manager;
- }
- }
- public class EmailService : IIdentityMessageService
- {
- public async Task SendAsync(IdentityMessage message)
- {
- await configSendGridasync(message);
- }
- // Use NuGet to install SendGrid (Basic C# client lib)
- private async Task configSendGridasync(IdentityMessage message)
- {
- var myMessage = new SendGridMessage();
- myMessage.AddTo(message.Destination);
- myMessage.From = new System.Net.Mail.MailAddress(
- "IEPProjekat@iep.com", "IEP Projekat");
- myMessage.Subject = message.Subject;
- myMessage.Text = message.Body;
- myMessage.Html = message.Body;
- var credentials = new NetworkCredential(
- ConfigurationManager.AppSettings["mailAccount"],
- ConfigurationManager.AppSettings["mailPassword"]
- );
- // Create a Web transport for sending email.
- var transportWeb = new Web(credentials);
- // Send the email.
- if (transportWeb != null)
- {
- await transportWeb.DeliverAsync(myMessage);
- }
- else
- {
- Trace.TraceError("Failed to create Web transport.");
- await Task.FromResult(0);
- }
- }
- }
- public class SmsService : IIdentityMessageService
- {
- public Task SendAsync(IdentityMessage message)
- {
- // Plug in your sms service here to send a text message.
- return Task.FromResult(0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement