コード例 #1
0
        public UserInfo GetOrCreate()
        {
            var currentPrincipal = _userPrincipalProvider.Get();

            var userInfo = _userInfoProvider.Get(currentPrincipal.Sid);

            if (userInfo != null)
            {
                if (userInfo.Login.Equals(currentPrincipal.Name, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(userInfo);
                }

                var existsUserAdInfo = _adUserInfoProvider.Get(currentPrincipal.Sid);

                _userInfoProvider.Update(userInfo.Id,
                                         existsUserAdInfo.Login,
                                         existsUserAdInfo.DisplayName,
                                         existsUserAdInfo.Email);

                return(userInfo);
            }

            var newUserAdInfo = _adUserInfoProvider.Get(currentPrincipal.Sid);

            return(_userInfoProvider.Create(
                       new UserInfo
            {
                DisplayName = newUserAdInfo.DisplayName,
                Email = newUserAdInfo.Email,
                Login = newUserAdInfo.Login,
                Sid = currentPrincipal.Sid
            }));
        }
コード例 #2
0
        public void UpdateUserInfo(UserUpdatedDto user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            if (user.Id != _userPrincipal.Info.Id)
            {
                throw new UnauthorizedAccessException();
            }

            _userInfoProvider.Update(user.Id, _userPrincipal.Info.Login, user.DisplayName, user.Email);
        }