दृश्य स्टूडियो में डिबगिंग करते समय रनर्स एक अलग उपयोगकर्ता


80

मैं उस प्रोग्राम को चलाने की कोशिश कर रहा हूं जिसे मैं एक अलग उपयोगकर्ता के रूप में डिबग कर रहा हूं। अब, यह exe चलाने और Visual Studio से संलग्न करके किया जा सकता है, लेकिन यह बोझिल है।

मैंने जो करने की कोशिश की है वह "रनअर्स" कमांड का उपयोग करना है:

command.com /C runas /env /user:OtherUser DebugTarget.Exe 

लेकिन यह कमशॉट्स से जुड़ा है, विजुअल स्टूडियो एक exe चाहता है। अब मैं एक डमी ऐप बना सकता हूं .... लेकिन किसी के पास इसके लिए बेहतर समाधान है?


यह बहुत बड़ा है। मैं अब इतना बेवकूफ महसूस करता हूं क्योंकि मैं इसे परीक्षण करने के लिए सिर्फ cmd.exe का उपयोग करता हूं। ऊग।
moogs

जवाबों:


81

जैसा कि डिबगर रन एप्लिकेशन में अलग-अलग उपयोगकर्ता के रूप में उल्लेख किया गया है (ऊपर लिंक किया गया है), ऐसा करने का एक और बेहद सरल तरीका जिसमें किसी भी अधिक टूल की आवश्यकता नहीं होती है:

  • होल्ड Shift+ दृश्य स्टूडियो का एक नया उदाहरण खोलने के लिए राइट क्लिक करें।
  • "अलग-अलग उपयोगकर्ता के रूप में चलाएं" पर क्लिक करें

    Run as Different user

  • अगली पॉप-अप विंडो में अन्य उपयोगकर्ता के क्रेडेंशियल दर्ज करें

  • उसी समाधान को खोलें जिसके साथ आप काम कर रहे हैं

अब जब आप समाधान को डिबग करेंगे तो यह अन्य उपयोगकर्ता की अनुमति के साथ होगा।

संकेत : यदि आप विजुअल स्टूडियो के कई उदाहरणों को चलाने जा रहे हैं, तो इसका विषय बदल दें (जैसे कि "अंधेरा"), ताकि आप उस पर नज़र रख सकें जिसमें से कोई एक आसानी से है)।


यह अब तक का सबसे अच्छा समाधान है। बहुत अच्छा काम करता है। केवल अड़चन यह है कि यदि आप टीएफएस या आपके किसी भी भुगतान किए गए ऐड-ऑन (जैसे आर #) का उपयोग नहीं कर सकते हैं। मैंने इसके चारों ओर बस समाधान को सामान्य रूप से (मेरे खाते के तहत) फिर से काम किया।
gregsdennis

दो अलग-अलग उपयोगकर्ताओं से एक ही समाधान खोलने के बारे में कुछ भी गलत नहीं है जैसे कि यह उत्तर बताता है। आप उन्हें साइड-बाय-ओपन कर सकते हैं, यही वजह है कि मैंने उनमें से एक के लिए आपके वीएस थीम को स्विच करने का सुझाव दिया है।
Watki02

2
मैंने दृश्य स्टूडियो 2015 तक इस पद्धति का उपयोग किया था। VS के इस संस्करण ने मुझे एक अलग उपयोगकर्ता के रूप में चलने पर MSDN कुंजी प्राप्त करने के लिए साइन इन करने दिया ताकि यह बस बंद हो जाए। उसके लिए कोई वर्कअराउंड?
NTDLS

2
दुर्भाग्य से चल रहे वीएस के रूप में एक अन्य उपयोगकर्ता अच्छा नहीं खेलता है जब स्रोत नियंत्रण में समाधान।
रिचर्ड जूल 19'16

1
क्या वीएस के लिए पहले उपयोग की तैयारी के लिए प्रतीक्षा करने का मुद्दा है यदि परीक्षण उपयोगकर्ता ने पहले इसका उपयोग नहीं किया है। लेकिन अन्यथा यह VS2013 के लिए एक इलाज का काम करता है।
केली बंग

29

यह काम करता है (मुझे बहुत बेवकूफ लगता है):

C:\Windows\System32\cmd.exe /C runas /savecred /user:OtherUser DebugTarget.Exe

उपरोक्त कमांड आपके पासवर्ड के लिए हर बार पूछेगा, इसलिए कम निराशा के लिए, आप उपयोग / सहेज सकते हैं। आपसे केवल एक बार पूछा जाता है। (लेकिन केवल होम एडिशन और स्टार्टर के लिए काम करता है, मुझे लगता है)


2
विजुअल स्टूडियो में आप यह कैसे करते हैं? क्या आप समाधान खोलते हैं, निर्माण करते हैं और किसी तरह विजुअल स्टूडियो से उपरोक्त कमांड चलाते हैं? मैं VS2008 का उपयोग करता हूं।
वॉलस्ट्रीट प्रोग्रामर


इस पद्धति में एक नकारात्मक पहलू यह है कि यह आपके कोड में किसी भी ब्रेकप्वाइंट को नहीं मार पाएगी।
लूइस थेरिन

@LewsTherin प्रोजेक्ट चलने के बाद, आपको अपने प्रोग्राम में VS डिबगर को अटैच करने के लिए Debug -> Attach to Process पर जाना होगा। आदर्श नहीं है, लेकिन लगता है कि यह सब हमारे पास है।
गैब्रियल लुसी

2
@GabrielLuci कुछ कोड याद कर सकता है जो आपके उस मेनू पर पहुंचने से पहले चलता है। बेहतर विकल्प यह है कि आप अपने कोड के प्रवेश बिंदु की पहली पंक्ति में निम्नलिखित को जोड़ सकते हैं:System.Diagnostics.Debugger.Launch();
Lews Therin

20

आप VSCommands 2010 को अलग-अलग उपयोगकर्ता के रूप में चलाने के लिए भी उपयोग कर सकते हैं :

वैकल्पिक शब्द


6
मुझे बताया जाना चाहिए कि इस सुविधा को सक्षम करने के लिए आपको VSCommands Pro की आवश्यकता है। लाइट (फ्री) संस्करण में, ये कमांड उपलब्ध प्रतीत होते हैं, लेकिन जब ये लागू होते हैं तो कुछ भी नहीं होता है। मैंने इसे VS2010 प्रो के साथ आजमाया।
d11

मैंने C # कंसोल एप्लिकेशन का उपयोग करके यह परीक्षण किया, जो एप्लिकेशन चलाने वाले उपयोगकर्ता के उपयोगकर्ता नाम को प्रिंट करता है। विभिन्न उपयोगकर्ता के रूप में चलाने के लिए विकल्प का उपयोग करना ठीक काम करता है। मुझे व्यवस्थापक के रूप में चलने या सामान्य उपयोगकर्ता के रूप में चलने के बारे में नहीं पता है ...
froeschli

@ d11 मैंने इसे "विजुअल स्टूडियो 2013 के लिए VSCommands" के साथ आज़माया, और यह उम्मीद के मुताबिक काम करता है। (सिवाय इसके कि "कमांड लाइन दलील" में निर्दिष्ट किसी भी चीज़ के लिए पूर्ण पथ आवश्यक है।)
रोक स्ट्रैनी

1
महान समाधान, यह विस्तार वास्तव में अच्छा है और 2012 और 2013 के लिए स्वतंत्र है, यह सिर्फ इस से काफी अधिक उपयोगी सामान जोड़ता है।
तोबेरोथ

1
शर्म नहीं आती इस परियोजना को बनाए रखा है।
गेब्रियल लुसी

6

मैं @ Watki02 के उत्तर के आधार पर निम्नलिखित विधि का उपयोग कर रहा हूं :

  1. डिबग करने के लिए एप्लिकेशन पर क्लिक करें
  2. अलग-अलग उपयोगकर्ता के रूप में चलाएं
  3. डिबगर को एप्लिकेशन में संलग्न करें

इस तरह आप दूसरे से डिबगिंग के दौरान अपने खुद के उपयोगकर्ता के रूप में अपने दृश्य स्टूडियो उदाहरण रख सकते हैं।


2

cmd.exe विंडोज के विभिन्न संस्करणों में विभिन्न स्थानों में स्थित है। Cmd.exe के स्थान की आवश्यकता से बचने के लिए, आप "cmd.exe / C" को कॉल किए बिना लिखे गए कमांड मोग का उपयोग कर सकते हैं।

यहाँ एक उदाहरण है कि मेरे लिए काम किया है:

  1. ओपन कमांड प्रॉम्प्ट
  2. निर्देशिका बदलें जहां आपके आवेदन की .exe फ़ाइल स्थित है।
  3. निम्न आदेश निष्पादित करें: runas / उपयोगकर्ता: domain \ username Application.exe

तो अंतिम चरण कमांड प्रॉम्प्ट में कुछ इस तरह दिखाई देगा:

C:\Projects\MyProject\bin\Debug>runas /user:domain\username Application.exe

नोट : डोमेन नाम मेरी स्थिति में आवश्यक था।


0

आप इच्छित उपयोगकर्ता के रूप में अपना कमांड प्रॉम्प्ट खोल सकते हैं:

  • Shift + राइट टास्क बार पर कमांड प्रॉम्प्ट आइकन पर राइट क्लिक करें।
  • चुनें (भिन्न उपयोगकर्ता के रूप में चलाएँ)

यहाँ छवि विवरण दर्ज करें

  • आपको लॉगिन और पासवर्ड के साथ संकेत दिया जाएगा

  • कमांड कमांड प्रॉम्प्ट शुरू होने के बाद आप यह जांच सकते हैं कि कमांड के अनुसार आप किस उपयोगकर्ता को चला रहे हैं whoami

  • अब आप डायरेक्टरी को अपने प्रोजेक्ट में बदल सकते हैं और चला सकते हैं

dotnet run

  • विजुअल स्टूडियो में Ctrl + Alt + P हिट (प्रक्रिया से जुड़ा - डिबग मेनू से भी पाया जा सकता है)

यहाँ छवि विवरण दर्ज करें

  • सुनिश्चित करें कि "सभी उपयोगकर्ताओं से प्रक्रिया दिखाएं" की जाँच की जाती है।
  • रनिंग प्रक्रिया ढूंढें और डीबगर संलग्न करें।

-1

मैं विजुअल स्टूडियो 2015 का उपयोग कर रहा हूं और विभिन्न क्रेडेंशियल्स वाली वेबसाइट को डीबग करने का प्रयास कर रहा हूं।

(मैं वर्तमान में एक विकास नेटवर्क पर एक वेबसाइट का परीक्षण कर रहा हूं जिसमें लाइव सक्रिय निर्देशिका की एक प्रति है; मैं एक सुरक्षित तरीके से अनुमतियों का परीक्षण करने के लिए उपयोगकर्ता खातों को "अपहृत" कर सकता हूं)

  1. अपने सामान्य उपयोगकर्ता के साथ डिबगिंग शुरू करें, सुनिश्चित करें कि आप http: // localhost: 8080 सामान्य रूप से प्राप्त कर सकते हैं
  2. दूसरे उपयोगकर्ता को "सामान्य उपयोगकर्ता के घर निर्देशिका, यानी, C: \ Users \ Colin" का पूर्ण नियंत्रण प्रदान करें
  3. दूसरे उपयोगकर्ता को अपनी मशीन पर व्यवस्थापक बनाएं । कंप्यूटर पर क्लिक करें> प्रबंधित करें> व्यवस्थापक समूह में अन्य उपयोगकर्ता जोड़ें
  4. इंटरनेट एक्सप्लोरर को अन्य उपयोगकर्ता के रूप में चलाएँ (Shift + राइट क्लिक इंटरनेट एक्सप्लोरर, अलग उपयोगकर्ता के रूप में चलाएँ)
  5. उस IE विंडो में अपने लोकलहोस्ट URL पर जाएं

कुछ त्वरित परीक्षण करने के लिए वास्तव में सुविधाजनक है। पूर्ण नियंत्रण पहुंच शायद ओवरकिल है, लेकिन मैं एक अलग नेटवर्क पर विकसित करता हूं। यदि कोई और अधिक विशिष्ट सेटिंग्स के बारे में नोट्स जोड़ता है तो मैं भविष्य में इस पोस्ट को ख़ुशी से संपादित करूँगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.