דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. הרצה של קוד VB כמשתמש אחר (מנהל)

הרצה של קוד VB כמשתמש אחר (מנהל)

מתוזמן נעוץ נעול הועבר תכנות
4 פוסטים 2 כותבים 192 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבייא מנותק
    אבייא מנותק
    אביי
    כתב ב נערך לאחרונה על ידי
    #1

    אני צריך לבצע פעולת העתקה בתוכנה שמעתיקה קבצים ותיקיות מ/לתיקייה שאין למשתמש שבו רצה התוכנה הרשאת גישה (זה בכוונה, אני רוצה שלא תהיה גישה לתיקיה מאותו משתמש ללא ביצוע פעולה בתוכנה), השאלה היא כיצד אני יכול לתת לתוכנה הרשאה גישה לתיקייה הזו?

    • הפעלת התוכנה כמנהל לא רלוונטית כי מדובר כאמור במשתמש לא מנהל ואני מעוניין שכל אחד יוכל להפעיל את התוכנה ולא רק המנהל..

    ניסיתי להשתמש בLogonUser

        Private Sub CopyFolderContents(ByVal sourceFolderPath As String, ByVal destinationFolderPath As String)
            'Create the destination folder if it does not exist
            If Not Directory.Exists(destinationFolderPath) Then
                Directory.CreateDirectory(destinationFolderPath)
            End If
    
            ' Impersonate the administrator user
            Dim windowsIdentity As WindowsIdentity = New WindowsIdentity("admin", "WORKGROUP", "0000000000")
            Dim impersonationContext As WindowsImpersonationContext = windowsIdentity.Impersonate()
    
            Try
    
                'Copy the files in the current folder to the destination folder
                For Each filePath As String In Directory.GetFiles(sourceFolderPath)
                    Dim fileName As String = Path.GetFileName(filePath)
                    Dim destinationFilePath As String = Path.Combine(destinationFolderPath, fileName)
                    File.Copy(filePath, destinationFilePath, True)
                Next
    
                'Copy the subdirectories and their contents to the destination folder recursively
                For Each subdirectoryPath As String In Directory.GetDirectories(sourceFolderPath)
                    Dim subdirectoryName As String = Path.GetFileName(subdirectoryPath)
                    Dim destinationSubdirectoryPath As String = Path.Combine(destinationFolderPath, subdirectoryName)
                    CopyFolderContents(subdirectoryPath, destinationSubdirectoryPath)
                Next
            Finally
                ' Revert the impersonation
                impersonationContext.Undo()
            End Try
        End Sub
    

    אבל קופצת השגיאה הבאה
    054a006d-9599-41ea-8fd6-c4da329d93e5-image.png
    (מחקתי את שם המשתמש, admin בדוגמת קוד שהבאתי)

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    תגובה 1 תגובה אחרונה
    0
    • אבייא מנותק
      אבייא מנותק
      אביי
      כתב ב נערך לאחרונה על ידי אביי
      #2

      ניסיתי כעת אפשרות אחרת שמצאתי כאן (אגב, גם שם מצוינת השיטה שניסיתי ליישם מקודם ללא הצלחה, אך היא מתוארת כפחות טובה..)

      הרעיון הוא לפתוח את המופע של היישום עם הרשאות ניהול באופן הזה:

          Function ConvertToSecureString(ByVal str As String)
              Dim password As New SecureString
              For Each c As Char In str.ToCharArray
                  password.AppendChar(c)
              Next
              Return password
          End Function
          Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
              Dim username As String = "admin1"
              Dim password As SecureString = ConvertToSecureString("000000")
              Dim domain As String = Nothing
              Dim filename As String = "hTerminal.exe" ' C:\hTerminal"
      
              Try
                  System.Diagnostics.Process.Start(filename, username, password, domain)
              Catch ex As Win32Exception
                  MessageBox.Show("שגיאה בשם המשתמש או הסיסמה",
              "שגיאה", MessageBoxButtons.OK,
               MessageBoxIcon.Error)
              End Try
          End Sub
      

      וגם כאן חוזרת השגיאה של "שגיאה בשם המשתמש או הסיסמה" מה שגורם לי לחשוב שאולי יש איזה משהו שפספסתי באופן שבו רשמתי את שם המשתמש..

      • הערת אגב, זה גם יותר מאובטח כביכול בגלל הפונקציה ConvertToSecureString()

      ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
      הלינקיה שלי https://abaye.co/link.html

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי dovid
        #3

        אתה כותב בVB .NET?
        תוכל לציין סביבה וגירסאות כי אצלי לא עובד הקודים שהבאת.

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        אבייא תגובה 1 תגובה אחרונה
        0
        • אבייא מנותק
          אבייא מנותק
          אביי
          השיב לdovid ב נערך לאחרונה על ידי אביי
          #4

          @dovid כתב בהרצה של קוד VB כמשתמש אחר (מנהל):

          אתה כותב בVB .NET?

          אכן, בויז'ואל 2022 גרסת NET 4.5.2.

          הקוד הראשון צריך

          Imports System.IO
          Imports System.Security.Principal
          

          והקוד השני משתמש ב

          Imports System.Security
          Imports System.ComponentModel
          

          ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
          הלינקיה שלי https://abaye.co/link.html

          תגובה 1 תגובה אחרונה
          1

          בא תתחבר לדף היומי!
          • התחברות

          • אין לך חשבון עדיין? הרשמה

          • התחברו או הירשמו כדי לחפש.
          • פוסט ראשון
            פוסט אחרון
          0
          • דף הבית
          • קטגוריות
          • פוסטים אחרונים
          • משתמשים
          • חיפוש
          • חוקי הפורום