NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • NGM 6
  • 매뉴얼

    NGM 6

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    디자이너 엔지엠 RPA 프레임워크 자동 로그인 만들기. (NGM RPA framework automatic login creation.…

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 자사 프로그램에 엔지엠 RPA 프레임워크로 자동화 기능을 탑제한다면 로그인이 문제가 될 수 있습니다. 서비스중인 소프트웨어가 로그인을 가지고 있는 경우 엔지엠 프레임워크의 로그인이 뜨면 이중 로그인으로 상품성을 저해하게 됩니다. 따라서, 로그인을 동기화하거나 자동으로 처리되도록 해야 하는데요. 오늘 알아볼 내용이 해결 방법이 될 수 있습니다. 우선, 이중 로그인에 대한 시나리오를 확인 해볼까요? 테스트를 위해 아래와 같은 로그인 폼을 하나 추가하세요.

    fxifc3u.png

     

     

    아이디는 test이며, 패스워드는 1q2w3e4r입니다. 로그인 폼의 코드는 간단하게 구성되어 있습니다. 운영에서는 데이터베이스와 연동해야겠죠^^?

    using System;
    using System.Windows.Forms;
    
    namespace FrameworkTest
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
    
                this.DialogResult = DialogResult.Cancel;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                if (textBox1.Text == "test" && textBox2.Text == "1q2w3e4r")
                {
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                else
                {
                    this.DialogResult = DialogResult.Cancel;
                    MessageBox.Show("아이디 또는 패스워드가 일치하지 않습니다. 확인 후 다시 실행하세요.");
                }
            }
        }
    }

     

    아이디와 패스워드를 입력하고, 로그인 버튼을 클릭하면 프로그램이 실행됩니다. 만약, 실패하면 "아이디 또는 패스워드가 일치하지 않습니다. 확인 후 다시 실행하세요." 메시지가 표시되고, 프로그램이 자동으로 종료됩니다. 아무튼 실행하고 동작을 확인 해보죠~

    pplCyaR.gif

     

     

    로그인이 성공하면 프로그램이 실행됩니다. 이 예제는 [ 이 글 ]과 연결되어 있으므로 미리 읽어보시길 권장드립니다. 저는 이미 엔터프라이즈 라이센스와 인증을 받았기 때문에 엔지엠 인증키 생성창이 표시되지 않습니다. 엔터프라이즈 라이센스를 이미 사용하고 계신분들은 내문서 > NGM6 > Confiugarion 폴더를 삭제하고 다시 실행 해보세요.

    DjTtCB1.gif

     

     

    서비스를 제공하는 입장에서 내 프로그램이 아닌 다른 프로그램의 로그인창이 보여지는건 그리 좋은 방식이 아닙니다. 기존 RPA 소프트웨어들은 이런 커스터마이징에 취약합니다. 대부분 고객사 시스템에 포함되기 때문이죠. 그래서, 비용이 상당히 비쌉니다. 1년 라이센스가 1,000만원에서 3,000만원이니까요. 물론, 비싼만큼 뭔가 더 전문적이고 안정적인 운영이 가능할겁니다. 그렇다고해서 엔지엠 RPA 제품들이 안정적이지 않다는건 아닙니다. 상대적으로 그럴 가능성이 있다는겁니다^^; 아무튼~ 엔지엠소프트웨어와 파트너쉽을 맺으면 프레임워크로 자동 로그인이 가능해집니다. 아래와 같이 자동 로그인 부분을 추가하세요.

    using System;
    using System.Diagnostics;
    using System.Reflection;
    using System.Windows.Forms;
    
    namespace FrameworkTest
    {
        static class Program
        {
            /// <summary>
            /// 해당 애플리케이션의 주 진입점입니다.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
    
                #region 관리자 권한으로 실행중인지 체크
                if (!NGM.Common.IsAdministrator)
                {
                    var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);
    
                    // 다음 속성은 관리자 권한으로 새 프로세스를 실행합니다.
                    processInfo.UseShellExecute = true;
                    processInfo.Verb = "runas";
    
                    // 새 프로세스 시작
                    try
                    {
                        Process.Start(processInfo);
                    }
                    catch (Exception)
                    {
                        // 사용자가 응용 프로그램이 관리자로 실행되도록 허용하지 않았습니다.
                        MessageBox.Show("죄송합니다.이 애플리케이션은 관리자로 실행해야합니다.");
                    }
    
                    // 현재 프로세스 종료
                    Application.Exit();
                }
                #endregion
    
                var login = new Form2();
                if (login.ShowDialog() != DialogResult.OK)
                    return;
    
                #region 자동 로그인
                bool isSuccess = false;
                if (!Designer.Partners.ExistCertification("<파트너 아이디>"))
                {
                    isSuccess = Designer.Partners.CreateCertification(
                        "<파트너 아이디>", 
                        "<파트너 패스워드>", 
                        "<사용자 컴퓨터 이름 - 계정에 유니크해야 함>");
    
                    if (isSuccess)
                    {
                        Designer.Partners.AddComputer(
                            "<파트너 코드 - 엔지엠 관리자에게 문의>", 
                            "<파트너 아이디>", 
                            "<파트너 패스워드>", 
                            "<사용자 컴퓨터 이름 - 계정에 유니크해야 함>");
                    }
                    else
                    {
                        MessageBox.Show("인증서 만들기가 실패 했습니다.");
                    }
                }
                #endregion
    
                Application.Run(new Form1());
            }
        }
    }

     

    각각 사용자 정보를 입력하고, 실행 해보세요. 엔지엠 RPA 인증창이 더이상 표시되지 않는걸 알 수 있습니다.

    qSwP3BC.gif

     

     

    스크립트도 정상적으로 실행됩니다. 컴퓨터 정보에 들어가보면 "컴퓨터 이름"에 설정한 이름으로 신규 컴퓨터가 등록되어 있고, 프레임워크 사용에 체크되어 있는걸 알 수 있습니다. 한번 인증이 등록되면 두번째부터는 로컬 컴퓨터에 복사된 인증서를 사용하여 자동으로 로그인하게 됩니다. 또한, 이미 등록되어 있는 정보라면 더이상 인증서를 생성하지 않고 건너뜁니다.

     

    엔지엠의 파트너는 인증서를 직접 관리해야 합니다. 예를 들어 파트너 라이센스를 300개 보유하고 있고, 서비스를 이용중인 고객이 200명이라면 크게 문제되지 않을겁니다. 하지만, 라이센스만큼 고객이 있고 신규 고객이 등록하면 라이센스가 301개가 되어 초과하는 문제가 있습니다. 이때에는 연결된 모든 클라이언트가 실행되지 않게됩니다. 이런 문제가 발생하지 않도록 하려면 고객 관리와 라이센스를 잘 관리해야 합니다. 추후 빌링 서비스를 도입할 예정이긴하나 현재로써는 자동 결제 서비스는 제공하지 않고 있습니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.