コード例 #1
0
ファイル: Bot.cs プロジェクト: ThereWasADream/KeyBot
 /// <summary>
 /// Link a mobile authenticator to bot account, using SteamTradeOffersBot as the authenticator.
 /// Called from bot manager console. Usage: "exec [index] linkauth"
 /// If successful, 2FA will be required upon the next login.
 /// Use "exec [index] getauth" if you need to get a Steam Guard code for the account.
 /// To deactivate the authenticator, use "exec [index] unlinkauth".
 /// </summary>
 void LinkMobileAuth()
 {
     new Thread(() =>
         {
             var login = new SteamAuth.UserLogin(logOnDetails.Username, logOnDetails.Password);
             var loginResult = login.DoLogin();
             if (loginResult == SteamAuth.LoginResult.NeedEmail)
             {
                 while (loginResult == SteamAuth.LoginResult.NeedEmail)
                 {
                     Log.Interface("Enter Steam Guard code from email (type \"input [index] [code]\"):");
                     var emailCode = WaitForInput();
                     login.EmailCode = emailCode;
                     loginResult = login.DoLogin();
                 }
             }
             if (loginResult == SteamAuth.LoginResult.LoginOkay)
             {
                 Log.Info("Linking mobile authenticator...");
                 var authLinker = new SteamAuth.AuthenticatorLinker(login.Session);
                 var addAuthResult = authLinker.AddAuthenticator();
                 if (addAuthResult == SteamAuth.AuthenticatorLinker.LinkResult.MustProvidePhoneNumber)
                 {
                     while (addAuthResult == SteamAuth.AuthenticatorLinker.LinkResult.MustProvidePhoneNumber)
                     {
                         Log.Interface("Enter phone number with country code, e.g. +1XXXXXXXXXXX (type \"input [index] [number]\"):");
                         var phoneNumber = WaitForInput();
                         authLinker.PhoneNumber = phoneNumber;
                         addAuthResult = authLinker.AddAuthenticator();
                     }
                 }
                 if (addAuthResult == SteamAuth.AuthenticatorLinker.LinkResult.AwaitingFinalization)
                 {
                     SteamGuardAccount = authLinker.LinkedAccount;
                     try
                     {
                         var authFile = Path.Combine("authfiles", String.Format("{0}.auth", logOnDetails.Username));
                         Directory.CreateDirectory(Path.Combine(System.Windows.Forms.Application.StartupPath, "authfiles"));
                         File.WriteAllText(authFile, Newtonsoft.Json.JsonConvert.SerializeObject(SteamGuardAccount));
                         Log.Interface("Enter SMS code (type \"input [index] [code]\"):");
                         var smsCode = WaitForInput();
                         var authResult = authLinker.FinalizeAddAuthenticator(smsCode);
                         if (authResult == SteamAuth.AuthenticatorLinker.FinalizeResult.Success)
                         {
                             Log.Success("Linked authenticator.");
                         }
                         else
                         {
                             Log.Error("Error linking authenticator: " + authResult);
                         }
                     }
                     catch (IOException)
                     {
                         Log.Error("Failed to save auth file. Aborting authentication.");
                     }
                 }
                 else
                 {
                     Log.Error("Error adding authenticator: " + addAuthResult);
                 }
             }
             else
             {
                 if (loginResult == SteamAuth.LoginResult.Need2FA)
                 {
                     Log.Error("Mobile authenticator has already been linked!");
                 }
                 else
                 {
                     Log.Error("Error performing mobile login: " + loginResult);
                 }
             }
         }).Start();
 }
コード例 #2
0
ファイル: Bot.cs プロジェクト: Cimera42/SteamBot
 /// <summary>
 /// Link a mobile authenticator to bot account, using SteamTradeOffersBot as the authenticator.
 /// Called from bot manager console. Usage: "exec [index] linkauth"
 /// If successful, 2FA will be required upon the next login.
 /// Use "exec [index] getauth" if you need to get a Steam Guard code for the account.
 /// To deactivate the authenticator, use "exec [index] unlinkauth".
 /// </summary>
 void LinkMobileAuth()
 {
     new Thread(() =>
     {
         var login       = new SteamAuth.UserLogin(logOnDetails.Username, logOnDetails.Password);
         var loginResult = login.DoLogin();
         if (loginResult == SteamAuth.LoginResult.NeedEmail)
         {
             while (loginResult == SteamAuth.LoginResult.NeedEmail)
             {
                 Log.Interface("Enter Steam Guard code from email (type \"input [index] [code]\"):");
                 var emailCode   = WaitForInput();
                 login.EmailCode = emailCode;
                 loginResult     = login.DoLogin();
             }
         }
         if (loginResult == SteamAuth.LoginResult.LoginOkay)
         {
             Log.Info("Linking mobile authenticator...");
             var authLinker    = new SteamAuth.AuthenticatorLinker(login.Session);
             var addAuthResult = authLinker.AddAuthenticator();
             if (addAuthResult == SteamAuth.AuthenticatorLinker.LinkResult.MustProvidePhoneNumber)
             {
                 while (addAuthResult == SteamAuth.AuthenticatorLinker.LinkResult.MustProvidePhoneNumber)
                 {
                     Log.Interface("Enter phone number with country code, e.g. +1XXXXXXXXXXX (type \"input [index] [number]\"):");
                     var phoneNumber        = WaitForInput();
                     authLinker.PhoneNumber = phoneNumber;
                     addAuthResult          = authLinker.AddAuthenticator();
                 }
             }
             if (addAuthResult == SteamAuth.AuthenticatorLinker.LinkResult.AwaitingFinalization)
             {
                 SteamGuardAccount = authLinker.LinkedAccount;
                 try
                 {
                     var authFile = Path.Combine("authfiles", String.Format("{0}.auth", logOnDetails.Username));
                     Directory.CreateDirectory(Path.Combine(System.Windows.Forms.Application.StartupPath, "authfiles"));
                     File.WriteAllText(authFile, Newtonsoft.Json.JsonConvert.SerializeObject(SteamGuardAccount));
                     Log.Interface("Enter SMS code (type \"input [index] [code]\"):");
                     var smsCode    = WaitForInput();
                     var authResult = authLinker.FinalizeAddAuthenticator(smsCode);
                     if (authResult == SteamAuth.AuthenticatorLinker.FinalizeResult.Success)
                     {
                         Log.Success("Linked authenticator.");
                     }
                     else
                     {
                         Log.Error("Error linking authenticator: " + authResult);
                     }
                 }
                 catch (IOException)
                 {
                     Log.Error("Failed to save auth file. Aborting authentication.");
                 }
             }
             else
             {
                 Log.Error("Error adding authenticator: " + addAuthResult);
             }
         }
         else
         {
             if (loginResult == SteamAuth.LoginResult.Need2FA)
             {
                 Log.Error("Mobile authenticator has already been linked!");
             }
             else
             {
                 Log.Error("Error performing mobile login: " + loginResult);
             }
         }
     }).Start();
 }