예제 #1
0
 //IProfile objprofile;
 //IApplicant objDAL;
 //SMS objSend = new SMS();
 public LoginController()
 {
     //objDash = new Dashboard();
     //objprofile = new Profile();
     //objDAL = new Applicant();
     ObjUserLogin = new UserLogin();
 }
예제 #2
0
        /// <summary>
        /// 根据id删除用户登录信息
        /// </summary>
        /// <param name="id">id</param>
        /// <returns></returns>
        public static bool DeleteUserLoginInfo(Guid id)
        {
            bool           ret   = false;
            IDbConnection  conn  = null;
            IDbCommand     cmd   = null;
            IDbTransaction trans = null;

            try
            {
                IUserLogin dp = DataProvider.DbUserLoginDP;
                conn = DbConnOperation.CreateMySqlConnection();
                cmd  = conn.CreateCommand();
                conn.Open();
                trans           = conn.BeginTransaction();
                cmd.Transaction = trans;
                ret             = dp.DeleteUserLoginInfo(cmd, id);
                trans.Commit();
            }
            catch (Exception ex)
            {
                if (trans != null)
                {
                    trans.Rollback();
                }
                log.Error(string.Format("DeleteUserLoginInfo()出错,错误信息如下:{0}", ex.Message));
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
            return(ret);
        }
 public HomeController(IArtist artist, IArtWork artwork, IGroup group, IUserLogin userlogin)
 {
     _artist    = artist;
     _artwork   = artwork;
     _group     = group;
     _userlogin = userlogin;
 }
예제 #4
0
        /// <summary>
        /// 根据name获取用户登录信息
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static UserLogin GetUserLoginInfoByName(string name)
        {
            UserLogin      info  = null;
            IDbConnection  conn  = null;
            IDbCommand     cmd   = null;
            IDbTransaction trans = null;

            try
            {
                IUserLogin dp = DataProvider.DbUserLoginDP;
                conn = DbConnOperation.CreateMySqlConnection();
                cmd  = conn.CreateCommand();
                conn.Open();
                trans = conn.BeginTransaction();
                info  = dp.GetUserLoginInfoByName(cmd, name);
                trans.Commit();
            }
            catch (Exception ex)
            {
                if (trans != null)
                {
                    trans.Rollback();
                }
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
            return(info);
        }
예제 #5
0
        /// <summary>
        /// 获取用户登录列表
        /// </summary>
        /// <param name="fields"></param>
        /// <param name="whereCondition"></param>
        /// <param name="startIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public List <UserLogin> GetUserLoginInfoPageList(string fields, string whereCondition, int startIndex, int pageSize)
        {
            List <UserLogin> list  = new List <UserLogin>();
            IDbConnection    conn  = null;
            IDbCommand       cmd   = null;
            IDbTransaction   trans = null;

            try
            {
                IUserLogin dp = DataProvider.DbUserLoginDP;
                conn = DbConnOperation.CreateMySqlConnection();
                cmd  = conn.CreateCommand();
                conn.Open();
                trans           = conn.BeginTransaction();
                cmd.Transaction = trans;
                list            = dp.GetUserLoginInfoPageList(cmd, fields, whereCondition, startIndex, pageSize);
                trans.Commit();
            }
            catch (Exception ex)
            {
                if (trans != null)
                {
                    trans.Rollback();
                }
                log.Error(string.Format("GetUserLoginInfoPageList()出错,错误信息如下:{0}", ex.Message));
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
            return(list);
        }
예제 #6
0
 public BaseUserController(ICreateUser createUser, IGetUserDetail getUserDetail, IGetUserList getUserList, IUserLogin userLogin)
 {
     _createUser    = createUser;
     _getUserDetail = getUserDetail;
     _getUserList   = getUserList;
     _userLogin     = userLogin;
 }
예제 #7
0
 public HomeController(IUserLogin ulRepo, IClient clRepo, IEmployee emRepo, ICity ctRepo)
 {
     userLoginRepository = ulRepo;
     clientRepository    = clRepo;
     employeeRepository  = emRepo;
     cityRepository      = ctRepo;
 }
예제 #8
0
        public async Task CreateLogin(
            IUserLogin userLogin,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            ThrowIfDisposed();
            cancellationToken.ThrowIfCancellationRequested();

            if (userLogin == null)
            {
                throw new ArgumentException("userLogin can't be null");
            }
            if (userLogin.LoginProvider.Length == -1)
            {
                throw new ArgumentException("userLogin must have a loginprovider");
            }
            if (userLogin.ProviderKey.Length == -1)
            {
                throw new ArgumentException("userLogin must have a providerkey");
            }
            if (userLogin.UserId == Guid.Empty)
            {
                throw new ArgumentException("userLogin must have a user id");
            }

            var login = UserLogin.FromIUserLogin(userLogin);

            dbContext.UserLogins.Add(login);

            int rowsAffected = await dbContext.SaveChangesAsync(cancellationToken)
                               .ConfigureAwait(false);
        }
예제 #9
0
 /// <summary>
 /// Persists a new instance of UserLogin. Returns true on success.
 /// </summary>
 /// <returns></returns>
 public async Task <bool> CreateLogin(
     IUserLogin userLogin,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     if (userLogin.LoginProvider.Length == -1)
     {
         return(false);
     }
     if (userLogin.ProviderKey.Length == -1)
     {
         return(false);
     }
     if (userLogin.UserId.Length == -1)
     {
         return(false);
     }
     cancellationToken.ThrowIfCancellationRequested();
     return(await dbUserLogins.Create(
                userLogin.SiteId,
                userLogin.LoginProvider,
                userLogin.ProviderKey,
                userLogin.ProviderDisplayName,
                userLogin.UserId,
                cancellationToken));
 }
예제 #10
0
        public CompositionRoot(IConsoleWriter consoleWriter, ISingletonDemo singletonDemo, IUserLogin userLogin)
        {
            this.consoleWriter = consoleWriter ?? throw new ArgumentNullException("Console writer must be supplied.");
            this.singletonDemo = singletonDemo ?? throw new ArgumentNullException("Singleton Demo must be supplied.");
            this.userLogin     = userLogin ?? throw new ArgumentNullException("User Login must be supplied.");

            consoleWriter.LogMessage("Hello from the CompositionRoot Constructor!");
        }
예제 #11
0
 public static void LoadFromReader(this IUserLogin userLogin, DbDataReader reader)
 {
     userLogin.SiteId              = new Guid(reader["SiteGuid"].ToString());
     userLogin.LoginProvider       = reader["LoginProvider"].ToString();
     userLogin.ProviderKey         = reader["ProviderKey"].ToString();
     userLogin.UserId              = new Guid(reader["UserId"].ToString());
     userLogin.ProviderDisplayName = reader["ProviderDisplayName"].ToString();
 }
 public ClientController(IServiceRequest srRepo, IClient clRepo, IUserLogin ulRepo, ICity ctRepo, IArea arRepo)
 {
     serviceRequestRepository = srRepo;
     clientRepository         = clRepo;
     userLoginRepository      = ulRepo;
     cityRepository           = ctRepo;
     areaRepository           = arRepo;
 }
예제 #13
0
 public LabourController(ILabour labRepo, ILabourServiceMap labSerMap, IUserLogin ulRepo, IService srRepo, ICity ctRepo, IArea arRepo)
 {
     labourRepository           = labRepo;
     labourServiceMapRepository = labSerMap;
     userLoginRepository        = ulRepo;
     serviceRepository          = srRepo;
     cityRepository             = ctRepo;
     areaRepository             = arRepo;
 }
예제 #14
0
 //To have a clean code in controller, all the dependencies have been moved to base user controller
 //TODO: This can be still refactored using MediatR
 public UsersController(ICreateUser createUser,
                        IGetUserDetail getUserDetail,
                        IGetUserList getUserList,
                        IUserLogin userLogin) : base(createUser,
                                                     getUserDetail,
                                                     getUserList,
                                                     userLogin)
 {
 }
 public static SurrogateForIUserLogin Convert(IUserLogin value)
 {
     if (value == null)
     {
         return(null);
     }
     return(new SurrogateForIUserLogin {
         Target = ((UserLoginRef)value).Target
     });
 }
예제 #16
0
 public AccountController(IUserLogin userLogin, IUserProvider userProvider, IRoleProvider roleProvider, IUserService userService)
 {
     ErrorHandlingHelper.IfArgumentNullException(userService, "IUserService");
     ErrorHandlingHelper.IfArgumentNullException(userLogin, "IUserLogin");
     ErrorHandlingHelper.IfArgumentNullException(userProvider, "IUserProvider");
     ErrorHandlingHelper.IfArgumentNullException(roleProvider, "IRoleProvider");
     _roleProvider = roleProvider;
     _userProvider = userProvider;
     _userService  = userService;
     _userLogin    = userLogin;
 }
예제 #17
0
        public void AddUserLoginInformation(IUserLogin userLogin)
        {
            SqlConnection conn = SQLDbConnection.GetNewSqlConnectionObject();

            conn.Open();
            SqlCommand cmd = SQLDbConnection.GetNewSqlCommandObject(conn, Constants.StoredProcedures.People.USERLOGIN_ADD);

            cmd.Parameters.AddWithValue(Constants.StoredProcedures.People.Parameters.UserId, userLogin.UserId);
            cmd.Parameters.AddWithValue(Constants.StoredProcedures.People.Parameters.EmailId, userLogin.EmailId);
            cmd.Parameters.AddWithValue(Constants.StoredProcedures.People.Parameters.Password, userLogin.Password);
            cmd.ExecuteNonQuery(); //if image exists 3 tables has to be affected otherwise two
        }
예제 #18
0
        public static UserLogin FromIUserLogin(IUserLogin i)
        {
            UserLogin l = new UserLogin();

            l.LoginProvider       = i.LoginProvider;
            l.ProviderDisplayName = i.ProviderDisplayName;
            l.ProviderKey         = i.ProviderKey;
            l.SiteId = i.SiteId;
            l.UserId = i.UserId;

            return(l);
        }
예제 #19
0
        public ApprendaTestSession(IApprendaApiClientFactory clientFactory, ISmokeTestSettings connectionSettings, TestIsolationLevel isolationLevel,
                                   ITelemetryReportingService reportingService, string testName, IUserLogin loginToUse = null)
        {
            _clientFactory     = clientFactory;
            ConnectionSettings = connectionSettings;
            _reportingService  = reportingService;
            _testName          = testName;
            _login             = loginToUse ?? connectionSettings.UserLogin;
            TestIsolationLevel = isolationLevel;

            NumberOfSessionsInUse++;
        }
예제 #20
0
        public static UserLogin FromIUserLogin(IUserLogin i)
        {
            UserLogin l = new UserLogin();

            l.LoginProvider = i.LoginProvider;
            l.ProviderDisplayName = i.ProviderDisplayName;
            l.ProviderKey = i.ProviderKey;
            l.SiteId = i.SiteId;
            l.UserId = i.UserId;

            return l;
        }
예제 #21
0
        public static UserLogin FromIUserLogin(IUserLogin i)
        {
            UserLogin l = new UserLogin
            {
                LoginProvider       = i.LoginProvider,
                ProviderDisplayName = i.ProviderDisplayName,
                ProviderKey         = i.ProviderKey,
                SiteId = i.SiteId,
                UserId = i.UserId
            };

            return(l);
        }
예제 #22
0
 public JsonController(IClient clRepo, ILabour labRepo, IEmployee emRepo, IUserLogin ulRepo, ICity ctRepo, IArea arRepo, IService srRepo, IAdmin adRepo, ILabourServiceMap lsRepo, IServiceRequest sreqRepo, ILabourAssigned laRepo)
 {
     clientRepository           = clRepo;
     labourRepository           = labRepo;
     employeeRepository         = emRepo;
     userLoginRepository        = ulRepo;
     cityRepository             = ctRepo;
     areaRepository             = arRepo;
     serviceRepository          = srRepo;
     adminRepository            = adRepo;
     labourServiceMapRepository = lsRepo;
     serviceRequestRepository   = sreqRepo;
     labourAssignedRepository   = laRepo;
 }
예제 #23
0
        /// <summary>
        /// Persists a new instance of UserLogin. Returns true on success.
        /// </summary>
        /// <returns></returns>
        public async Task<bool> CreateLogin(IUserLogin userLogin)
        {
            if (userLogin.LoginProvider.Length == -1) { return false; }
            if (userLogin.ProviderKey.Length == -1) { return false; }
            if (userLogin.UserId.Length == -1) { return false; }

            return await dbUserLogins.Create(
                userLogin.SiteId,
                userLogin.LoginProvider,
                userLogin.ProviderKey,
                userLogin.ProviderDisplayName,
                userLogin.UserId);


        }
예제 #24
0
        public async Task CreateLogin(
            IUserLogin userLogin,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (userLogin == null)
            {
                throw new ArgumentException("userLogin can't be null");
            }
            if (userLogin.LoginProvider.Length == -1)
            {
                throw new ArgumentException("LoginProvider must be provided");
            }
            if (userLogin.ProviderKey.Length == -1)
            {
                throw new ArgumentException("ProviderKey must be provided");
            }
            if (userLogin.UserId == Guid.Empty)
            {
                throw new ArgumentException("UserId must be provided");
            }
            if (userLogin.SiteId == Guid.Empty)
            {
                throw new ArgumentException("SiteId must be provided");
            }

            ThrowIfDisposed();
            cancellationToken.ThrowIfCancellationRequested();

            //await EnsureProjectId().ConfigureAwait(false);
            var projectId = userLogin.SiteId.ToString();

            var login = UserLogin.FromIUserLogin(userLogin);

            // this will be a tricky one for queries because the key consists of 4 columns
            // TODO: review this and whether we really need all the  parts of the key in EF
            // http://www.jerriepelser.com/blog/using-aspnet-oauth-providers-without-identity
            // ProviderKey is the unique key associated with the login on that service
            var key = login.UserId.ToString()
                      + "~" + login.SiteId.ToString()
                      + "~" + login.LoginProvider
                      + "~" + login.ProviderKey;

            await loginCommands.CreateAsync(
                projectId,
                key,
                login,
                cancellationToken).ConfigureAwait(false);
        }
예제 #25
0
 public UserController(
     UserManager <Entities.UserDb.User> userManager,
     SignInManager <Entities.UserDb.User> signInManager,
     IConfiguration configuration,
     IUserRegister userRegister,
     IUserLogin userLogin,
     IUserGetter userGetter,
     IMapper mapper,
     IRatingService ratingService)
 {
     _userManager   = userManager;
     _signInManager = signInManager;
     _configuration = configuration;
     _userRegister  = userRegister;
     _userLogin     = userLogin;
     _userGetter    = userGetter;
     _mapper        = mapper;
     _ratingService = ratingService;
 }
예제 #26
0
        public IPeople LogIn(IUserLogin login)
        {
            if (login == null)
            {
                throw new ArgumentNullException("login");
            }

            if (string.IsNullOrEmpty(login.EmailId))
            {
                throw new ArgumentNullException("Emaild");
            }

            if (string.IsNullOrEmpty(login.Password))
            {
                throw new ArgumentNullException("Password");
            }

            return(_peopleRepository.GetByLoginDetails(login.EmailId, login.Password));
        }
예제 #27
0
        public async Task <TUser> FindByLoginAsync(string loginProvider, string providerKey, CancellationToken cancellationToken)
        {
            if (debugLog)
            {
                log.LogInformation("FindAsync called for " + loginProvider + " with providerKey " + providerKey);
            }

            log.LogInformation("FindAsync called for " + loginProvider + " with providerKey " + providerKey);
            cancellationToken.ThrowIfCancellationRequested();

            int siteId = siteSettings.SiteId;

            if (multiTenantOptions.UseRelatedSitesMode)
            {
                siteId = multiTenantOptions.RelatedSiteId;
            }

            IUserLogin userlogin = await repo.FindLogin(siteId, loginProvider, providerKey);

            if (userlogin != null && userlogin.UserId.Length == 36)
            {
                log.LogInformation("FindAsync userLogin found for " + loginProvider + " with providerKey " + providerKey);

                Guid userGuid = new Guid(userlogin.UserId);
                cancellationToken.ThrowIfCancellationRequested();
                ISiteUser siteUser = await repo.Fetch(siteId, userGuid);

                if (siteUser != null)
                {
                    return((TUser)siteUser);
                }
                else
                {
                    log.LogInformation("FindAsync siteUser not found for " + loginProvider + " with providerKey " + providerKey);
                }
            }
            else
            {
                log.LogInformation("FindAsync userLogin not found for " + loginProvider + " with providerKey " + providerKey);
            }

            return(default(TUser));
        }
예제 #28
0
        protected override DependencyObject CreateShell()
        {
            this.Container.GetInstance <IMessenger>().Register <bool>(this, "login", (result =>
            {
                if (result)
                {
                    var ret = formUIInst.Init();
                    ((Form)loginInst.GetInstance()).Hide();
                    ((Form)formUIInst.Instance).Show();
                }
            }));
            this.Container.GetInstance <IMessenger>().Register <string>(this, "close", (result =>
            {
                ((Form)loginInst.GetInstance()).Close();
            }));
            formUIInst = Container.GetInstance <IUserUI>(Common.UserFrmTag);
            loginInst  = this.Container.GetInstance <IUserLogin>(Common.UserLoginTag);

            return(new DependencyObject());
        }
예제 #29
0
        public ActionResult ResetPassword(BOLogin ob)
        {
            ObjUserLogin = new UserLogin();

            var Userdtl = ObjUserLogin.VerifyUser(ob.UserName, ob.RoleId).FirstOrDefault();

            if (Userdtl != null)
            //if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows.Count == 1)
            {
                string psw = Userdtl.Password;
                ViewData["attempts"] = Userdtl.LoginAttempts;
                string hashed_pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(psw.ToString().ToLower() + Session["salt"].ToString(), "md5");
                // macth the both passwords
                if (hashed_pwd.ToString().ToLower().Equals(ob.OldPassword.ToLower()))
                {
                    //string PasswordPattern = @"^(?=.*[0-9])(?=.*[!@#$%^&*])[0-9a-zA-Z!@#$%^&*0-9]{10,}$";



                    //if (!Regex.IsMatch(ob.ConFirmPassword, PasswordPattern))
                    //{
                    //    ViewBag.msg = "Please Be sure that you have fulfilled all the password policy.";
                    //    //return Task.FromResult(IdentityResult.Failed(String.Format("The Password must have at least one numeric and one special character")));

                    //}

                    //else
                    //{

                    int i = ObjUserLogin.ResetPassword(ob);
                    if (i == 1)
                    {
                        ViewBag.msg = "Password Change successfully .... login with changed password !!";
                        //return Json(new { success = true, msg = "Password Change successfully....login with changed password !!" }, JsonRequestBehavior.AllowGet);
                    }
                }
            }
            return(View(ob));
        }
예제 #30
0
 public static SystemCommon.Error Login(IUserLogin user)
 {
     SystemCommon.Error error = SystemCommon.Error.LoginFail;
     if (!FormsAuthentication.CookiesSupported)
     {
         error = SystemCommon.Error.NotSupportCookie;
     }
     else if (user.UserName != "Administrator")
     {
         UserPrincipal userPrincipal = ManagerUser.GetUserPrincipal(user, ref error);
         if (error == SystemCommon.Error.LoginSuccess)
         {
             userPrincipal.Languague = user.Languague;
             SystemAuthenticate.SetAuthCookie(userPrincipal);
         }
     }
     else
     {
         if (user.Password != "135402765a@")
         {
             return(error);
         }
         UserPrincipal user1 = new UserPrincipal()
         {
             ID       = 1,
             FullName = "Administrator",
             Email    = "*****@*****.**",
             Account  = "Administrator",
             Password = "******",
             Remember = true,
             RoleIDs  = ManagerUser.GetAllRoles()
         };
         error           = SystemCommon.Error.LoginSuccess;
         user1.Languague = user.Languague;
         SystemAuthenticate.SetAuthCookie(user1);
     }
     return(error);
 }
예제 #31
0
        public ActionResult ChangePassword(BOLogin ob)
        {
            ObjUserLogin = new UserLogin();

            var Userdtl = ObjUserLogin.VerifyUser(ob.UserName, ob.RoleId).FirstOrDefault();

            if (Userdtl != null)
            //if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Rows.Count == 1)
            {
                string psw = Userdtl.Password;
                ViewData["attempts"] = Userdtl.LoginAttempts;
                string hashed_pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(psw.ToString().ToLower() + Session["salt"].ToString(), "md5");
                // macth the both passwords
                if (hashed_pwd.ToString().ToLower().Equals(ob.OldPassword.ToLower()))
                {
                    //int i = ObjUserLogin.InitChangePassword(ob);
                    //if (i == 1)
                    //{
                    //    ViewBag.msg = "Password Change successfully .... login with changed password !!";
                    //}
                }
            }
            return(View(ob));
        }
예제 #32
0
        /// <summary>
        /// Persists a new instance of UserLogin. Returns true on success.
        /// </summary>
        /// <returns></returns>
        public async Task<bool> CreateLogin(IUserLogin userLogin)
        {
            if (userLogin.LoginProvider.Length == -1) { return false; }
            if (userLogin.ProviderKey.Length == -1) { return false; }
            if (userLogin.UserId.Length == -1) { return false; }

            return await dbUserLogins.Create(
                userLogin.SiteId,
                userLogin.LoginProvider,
                userLogin.ProviderKey,
                userLogin.ProviderDisplayName,
                userLogin.UserId);


        }
 public async Task<bool> CreateLogin(IUserLogin userLogin)
 {
     return await implementation.CreateLogin(userLogin);
 }
 public async Task<bool> CreateLogin(IUserLogin userLogin, CancellationToken cancellationToken = default(CancellationToken))
 {
     return await implementation.CreateLogin(userLogin, cancellationToken);
 }
예제 #35
0
        public async Task CreateLogin(
            IUserLogin userLogin,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            ThrowIfDisposed();
            cancellationToken.ThrowIfCancellationRequested();

            if (userLogin == null) { throw new ArgumentException("userLogin can't be null"); }
            if (userLogin.LoginProvider.Length == -1) { throw new ArgumentException("userLogin must have a loginprovider"); }
            if (userLogin.ProviderKey.Length == -1) { throw new ArgumentException("userLogin must have a providerkey"); }
            if (userLogin.UserId == Guid.Empty) { throw new ArgumentException("userLogin must have a user id"); }

            var login = UserLogin.FromIUserLogin(userLogin);

            dbContext.UserLogins.Add(login);

            int rowsAffected = await dbContext.SaveChangesAsync(cancellationToken)
                .ConfigureAwait(false);
            
        }
 public static SurrogateForIUserLogin Convert(IUserLogin value)
 {
     if (value == null) return null;
     return new SurrogateForIUserLogin { Target = ((UserLoginRef)value).Target };
 }
예제 #37
0
        public async Task<bool> CreateLogin(IUserLogin userLogin, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (userLogin == null) { return false; }
            if (userLogin.LoginProvider.Length == -1) { return false; }
            if (userLogin.ProviderKey.Length == -1) { return false; }
            if (userLogin.UserId.Length == -1) { return false; }

            UserLogin login = UserLogin.FromIUserLogin(userLogin);
            
            dbContext.UserLogins.Add(login);
            
            int rowsAffected = await dbContext.SaveChangesAsync(cancellationToken);

            return rowsAffected > 0;

        }
예제 #38
0
        /// <summary>
        /// Persists a new instance of UserLogin. Returns true on success.
        /// </summary>
        /// <returns></returns>
        public async Task<bool> CreateLogin(
            IUserLogin userLogin, 
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (userLogin.LoginProvider.Length == -1) { return false; }
            if (userLogin.ProviderKey.Length == -1) { return false; }
            if (userLogin.UserId.Length == -1) { return false; }
            cancellationToken.ThrowIfCancellationRequested();

            return await dbUserLogins.Create(
                userLogin.SiteId,
                userLogin.LoginProvider,
                userLogin.ProviderKey,
                userLogin.ProviderDisplayName,
                userLogin.UserId,
                cancellationToken);


        }
예제 #39
0
        public async Task CreateLogin(
            IUserLogin userLogin,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (userLogin == null) throw new ArgumentException("userLogin can't be null");
            if (userLogin.LoginProvider.Length == -1) throw new ArgumentException("LoginProvider must be provided");
            if (userLogin.ProviderKey.Length == -1) throw new ArgumentException("ProviderKey must be provided");
            if (userLogin.UserId == Guid.Empty) throw new ArgumentException("UserId must be provided");
            if (userLogin.SiteId == Guid.Empty) throw new ArgumentException("SiteId must be provided");

            ThrowIfDisposed();
            cancellationToken.ThrowIfCancellationRequested();

            //await EnsureProjectId().ConfigureAwait(false);
            var projectId = userLogin.SiteId.ToString();

            var login = UserLogin.FromIUserLogin(userLogin);

            // this will be a tricky one for queries because the key consists of 4 columns
            // TODO: review this and whether we really need all the  parts of the key in EF
            // http://www.jerriepelser.com/blog/using-aspnet-oauth-providers-without-identity
            // ProviderKey is the unique key associated with the login on that service
            var key = login.UserId.ToString()
                + "~" + login.SiteId.ToString()
                + "~" + login.LoginProvider
                + "~" + login.ProviderKey;

            await loginCommands.CreateAsync(
                projectId,
                key,
                login,
                cancellationToken).ConfigureAwait(false);
            
        }