2012-04-11 19 views
24

मुझे सी # में प्रोग्रामपेटिक रूप से ऐपपूल की पहचान कैसे प्राप्त हो सकती है? मैं एप्लिकेशन पूल उपयोगकर्ता चाहता हूं और वर्तमान में लॉग इन करने वाला उपयोगकर्ता नहीं।प्रोग्राम पूल पहचान प्रोग्रामेटिक

उत्तर

33

आप वर्तमान एप्लिकेशन चल रहे पहचान की पहचान करने के लिए System.Security.Principal.WindowsIdentity.GetCurrent().Name का उपयोग कर सकते हैं। This link एक अच्छी उपयोगिता प्रदान करता है जो पहचान प्रदर्शित करता है जिसके तहत एएसपीएक्स चलाया जाता है।

+0

अगर मैं आईआईएस प्रबंधक में AppPool पहचान बदल System.Security.Principal.WindowsIdentity.GetCurrent नहीं करना चाहिए()। नाम बदल मूल्य मिल सकता है? – p0enkie

+6

वहां किसी के लिए ठीक है जो संघर्ष कर रहा है, यह वह कोड है जिसका उपयोग मैं उपयोगकर्ता नाम प्राप्त करने के लिए करता था जिसने ऐपपूल (इसकी पहचान) शुरू की: एप्लिकेशनपूल पूल = सर्वर प्रबंधक। एप्लिकेशनपूल ["YoutAppPoolName"]; पूल.प्रोसेडोडेल.इडेन्टिटी टाइप = प्रोसेस मोडेल इडेंटिटी टाइप। स्पेसिफिक यूज़र; स्ट्रिंग उपयोगकर्ता = पूल। प्रोसेसमोडेल.उसरनाम; – p0enkie

+1

@ p0enkie 'serverManager' क्या है? – Kiquenet

2

आपको Microsoft.Web.Administration (Microsoft.Web.Administration.dll में) का संदर्भ देना होगा। माइक्रोसॉफ्ट.Web.Administration.dll सी: \ विंडोज \ System32 \ inetsrv में स्थित है।

//Add this to your using statements: 
using Microsoft.Web.Administration; 

//You can get the App Pool identity like this:  
public string GetAppPoolIdentity(string appPoolName) 
{ 
    var serverManager = new ServerManager(); 

    ApplicationPool appPool = serverManager.ApplicationPools[appPoolName]; 
    appPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; 
    return appPool.ProcessModel.UserName;    
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^