Қандай веб-сервердің ішіндегі кодынан анықтаңыз

ASP.NET веб-бағдарламасы Cassini веб-серверінде Visual Studio немесе IIS-де жұмыс істейтінін прагматикалық түрде айту мүмкін бе?

Фонды және сұрастырудың негізі:

Біздің қосымшаларымыздың кейбіреулері біз логинді тексеріп, кіру атауының қалыпты кіру параметрлерін компьютердің атауын тексеру арқылы немесе Клиенттің IP мекенжайының жергілікті болып табылатындығын тексеру арқылы тексеріп шығамыз. (127.0.0.1 немесе 1::), сондықтан біз тестілеуден өтіп, біздің даму ДК-лерімізде жөндеу кезінде қолданба басқаша әрекет етуі мүмкін.

Машиналық атау әдісі жақсы, бірақ жаңа Dev компьютерін алған кезде кодты өзгерту қажет. Мен бұл жиі емес екендігін түсінемін, бірақ ол өздігінен сезінеді. Сондай-ақ, бірнеше әзірлеушілермен бірге жұмыс істейтін болсақ, барлық машиналардың тізімін «if» мәлімдемесінде көрсету керек.

Ал «localhost» тәсіліне келер болсақ, ол маған ұнайды. Басқа шабуыл бетін қосады. Мен веб-серверлердің біреуіне кіріп, оны жергілікті түрде басқарып, заттар көруді ойлаймын.

Сондықтан веб-сайт Cassini веб-серверімен Visual Studio-дан жұмыс істейтінін анықтау үшін кодтан жол бар ма?

2
Өкінішке орай. Менің ойымша, HttpRequest.IsLocal не?
қосылды автор codingbadger, көзі
Бұл әр түрлі - ол отладка режимінде іске қосылғанын қалай анықтау керектігін сұрайды. Мен Visual Studio бағдарламасында босату режимінде оңай болар едім.
қосылды автор David, көзі
Рахмет, бірақ бұл сұраққа емес. Бұл IP-мекен-жайын тексеруге қарағанда таза код, бірақ бәрі бірдей алаңдаушылық тудырады. Бірақ бұл жақсы ой.
қосылды автор David, көзі

2 жауаптар

IIS астында іске қосылған кезде, ServerVariables жинағының SERVER_SOFTWARE сипаты Microsoft-IIS/7.5 сияқты нәрселер туралы хабарлайды.

Өкінішке орай, бұл Кассини астында жұмыс істегенде бос болмады.

Қауіпсіздік туралы қамқорлық жасасаңыз, бұл сізге көмектеседі ме, жоқ па, білмеймін.

пікірлерден:

System.Diagnostics.Process.GetCurrentProcess() тексеріңіз ProcessName Cassini үшін «WebDev.WebServer40» және IIS үшін «w3wp»

string processName= System.Diagnostics.Process.GetCurrentProcess().ProcessName;
if (processName == "WebDev.WebServer40")
{
  //testing
  //Insert code that you want to happen if this is running in Visual Studio
}

Бұл IIS жүйесінде іске қосылған болса, pName айнымалысы «w3wp» болады. Visual Studio бағдарламасында .NET 4.0 қолданбасы «WebDev.WebServer40». (Мен тексерген жоқпын, бірақ WebDev.WebServer20 үшін ASP.NET 2.0 деп ойлаймын)

2
қосылды
Қауіпсіздік емес. Біз бұл ақпаратты шынымен сезімтал ақпаратпен қолданбаймыз. Бұл жағдайдың ең нашар болуы дүкен басшысы көшбасшыға арналған ақпаратты көреді. Қаржылықтар жоқ, ешқандай өнімділік/HR жұмысы жоқ. Бұл басқа жүйеден (OpenId сияқты) өткен пайдаланушының идентификаторын пайдаланатын ішкі сайттарда және біз белгілі бір пайдаланушыда веб-сайттың қалай көрінетінін көру үшін оны айналып өтуді қалаймыз. Бұл шынында да керемет. Мен оны сынап көремін.
қосылды автор David, көзі
Дарн. Жұмыс істемеді. Мен оны IIS-ті таратпау үшін конфигурациялағандықтан қабылдаймын деп ойлаймын. Бәрібір рахмет!
қосылды автор David, көзі
Мен оны таптым! Сіздің жауабым мені дұрыс жолға апару үшін жеткілікті болды. System.Diagnostics.Process.GetCurrentProcess() параметрін тексерді ProcessName Cassini үшін «WebDev.WebServer40» және IIS үшін «w3wp» Мен жауап беруші іздеген адам емеспін, бірақ мені дұрыс жолға түсірдіңіз, сондықтан сіз өзіңіздің өзгертуіңізді қаласаңыз, мен оны қабылдаймын, оны түсінуге тырысатын келесі адам оны таба алады.
қосылды автор David, көзі
Ия, мен өз сұрақтарыма жауап бермеймін, әсіресе басқалар уақытты сынап көргенде.
қосылды автор David, көзі
Дәуіт, рахмет!
қосылды автор starskythehutch, көзі
@David Жауап жаңартылмаса, оны өзіңіз жауап беріңіз және дұрыс деп белгілеңіз. Мен мұны өте жақсы кодтың бөлігі деп тауып алдым.
қосылды автор rick schott, көзі

Құрылыс белгілерін қолдануға бола ма? Құрастыру белгісін орнатыңыз, одан кейін #IF PROD жасаңыз, одан кейін аутентификацияны іске қосыңыз. Сондықтан, отладка режимінде болсаңыз, түпнұсқалықты толығымен өткізіп жібереді. Бұл көмектеседі деп үміттенемін!

0
қосылды