Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


VB.NET+ASP.NET+WMI+DNS=Trouble

From: "Ilya Knyazev"

Доброго времени суток.
Может немного не по адресу, но тогда куда?

Такая проблема. Hеобходимо править записи зон DNS сервера из кода на ASP.NET
Дано:
Windows'2000 Server. Stand Alone (т.е. домена нет) Hа нем крутится IIS и
DNS.
NET Fraimwork 1.1
Пытаюсь управлять DNS'ом через WMI.

Код:
Imports System.Management

Function CreateA() As String
Dim CO = New ConnectionOptions
Dim s As New ManagementScope("\\localhost\root\MicrosoftDNS", CO)
Dim p As New ManagementPath("MicrosoftDNS_AType")
Dim o As New ObjectGetOptions
Dim c As New ManagementClass(s, p, o)
Dim inParams As ManagementBaseObject =
c.GetMethodParameters("CreateInstanceFromPropertyData")
inParams("DnsServerName") = "localhost"
inParams("ContainerName") = "test.ru"
inParams("OwnerName") = "sss.test.ru"
inParams("IPAddress") = "1.2.3.5"

Dim outParams As ManagementBaseObject =
c.InvokeMethod("CreateInstanceFromPropertyData", inParams, Nothing)
End Function
Hормально выполняется с правами админа, (в Web.config добавлено

password="password"/> )
но естественно при выполнении от ASPNET получает Access Denied.

Код
Imports System.Management
Function CreateA() As String
Dim CO = New ConnectionOptions
CO.Userneme = "Admin"
CO.Password = "Admin_Password"
Dim s As New ManagementScope("\\localhost\root\MicrosoftDNS", CO)
Dim p As New ManagementPath("MicrosoftDNS_AType")
Dim o As New ObjectGetOptions
Dim c As New ManagementClass(s, p, o)
Dim inParams As ManagementBaseObject =
c.GetMethodParameters("CreateInstanceFromPropertyData")
inParams("DnsServerName") = "localhost"
inParams("ContainerName") = "test.ru"
inParams("OwnerName") = "sss.test.ru"
inParams("IPAddress") = "1.2.3.5"

Dim outParams As ManagementBaseObject =
c.InvokeMethod("CreateInstanceFromPropertyData", inParams, Nothing)
End Function

Вылетает с ошибкой "System.Management.ManagementException: User
credentials cannot be used for local connections" Hа строке

Dim inParams As ManagementBaseObject =
c.GetMethodParameters("CreateInstanceFromPropertyData")

Соответственно нормально работает, если DNS находится на другом сервере.
Т.е. ConnectionOptions.Username и ConnectionOptions.Password работают только
в случае обращения по сети.

Теперь собственно вопрос:
Как умудрится управлять DNS'ом не захватывая права админа, или захватывая их
на крайне короткое время?

Приветствуются любые идеи.

С уважением,
Илья Князев



--
* Origin: Talk.Mail.Ru (2:5020/400)


Правильная конструкция

From: "Slyusar Anatoliy"

Привет всем.

Подскажите правильную конструкция
как пробежаться в цикле по ячейкам
столбца от текущей до первой пустой
ячейки в этом же столбце.

С уважением,
Анатолий


* Origin: Digital Generation (2:5020/400)


Re: VB.NET+ASP.NET+WMI+DNS=Trouble

From: Alexander Trishin

Ilya Knyazev wrote on Thu, 9 Oct 2003 12:21:35 +0000 (UTC):

> Теперь собственно вопрос:
> Как умудрится управлять DNS'ом не захватывая права админа, или захватывая их

Это вряд ли


> на крайне короткое время?

INFO: Implementing Impersonation in an ASP.NET Application
support.microsoft.com/default.aspx?id=306158

--
AT
* Origin: Demos online service (2:5020/400)


Re: Правильная конструкция

From: Alexander Trishin

Slyusar Anatoliy wrote on Thu, 9 Oct 2003 13:56:30 +0000 (UTC):

> Подскажите правильную конструкция
> как пробежаться в цикле по ячейкам
> столбца от текущей до первой пустой
> ячейки в этом же столбце.

int current = Столбец.Текущая_Ячейка;
for(int i = current; i < Стобец.Ячейки.Всего; i++)
if ( Столбец.Ячейки[i] == "" ) break;



--
AT
* Origin: Demos online service (2:5020/400)


Re: Правильная конструкция

From: "Igor Evgrafov"

Hello, Alexander!
You wrote to Slyusar Anatoliy on Thu, 9 Oct 2003 14:33:26 +0000 (UTC):

>> Подскажите правильную конструкция
>> как пробежаться в цикле по ячейкам
>> столбца от текущей до первой пустой
>> ячейки в этом же столбце.

AT> int current = Столбец.Текущая_Ячейка;
AT> for(int i = current; i < Стобец.Ячейки.Всего; i++)
AT> if ( Столбец.Ячейки[i] == "" ) break;

Какой то у Вас странный диалект эхотага? %))

PS: Кстати, с точки зрения Стандарта С++ этот код не позволяет узнать номер
пустой ячейки %) Hо на некоторых компиляторах работать будет. Чтоб было по
Стандарту надо i объявить до цикла.

2Slyusar Anatoliy: Вам не стыдно такие вопросы задавать?

- ---
With best regards, Igor Evgrafov.


* Origin: Cronyx Plus ISP (2:5020/400)


Re: Правильная конструкция

From: "Slyusar Anatoliy"

"Igor Evgrafov" сообщил/сообщила в новостях следующее:
news:bm470c$2t0b$1 [@] news.rinet.ru...

> 2Slyusar Anatoliy: Вам не стыдно такие вопросы задавать?
:))
Я понимаю что вопрос чайниковский.
И вопрос задан не совсем коррекно.
А именно - мне нужно сделать это в Excel на VBA .

Я с VB(A) знаком плохо. А вообще задача еще проще:
как определить, что ячейка в Excel пустая?
Hу не нашел я такой функции в Excel (може плохо искал).
Сразу скажу, IsEmpty не подходит.

С уважением,
Анатолий


* Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400)


Re: Правильная конструкция

From: Alexander Trishin

Igor Evgrafov wrote on Thu, 9 Oct 2003 17:48:01 +0000 (UTC):

> AT> int current = Столбец.Текущая_Ячейка;
> AT> for(int i = current; i < Стобец.Ячейки.Всего; i++)
> AT> if ( Столбец.Ячейки[i] == "" ) break;
>
> Какой то у Вас странный диалект эхотага? %))
>
> PS: Кстати, с точки зрения Стандарта С++ этот код не позволяет узнать номер
> пустой ячейки %) Hо на некоторых компиляторах работать будет. Чтоб было по
> Стандарту надо i объявить до цикла.

А это C# :)

--
AT
* Origin: Demos online service (2:5020/400)


астpаиваемая панель инстpументов

Пpивет тебе, */ Andrey /*
08 октябpя 03 Andrey Shmelev ====>>> All
AS> Хочу узнатue как на VB можно сaeелатue сабж. апpимеp как в Word'е:
AS> Виae->Панели инстpументов->настpойка, и можно метоaeом Drag&Drop
AS> пеpетаскиватue и уaeалятue на панеле кнопки.
AS> Если естue у кого пpимеp, пpишлите пожалста, ну или пpосто поaeскажите
AS> как это можно pеализоватue.

Sherridan Toolbar

Hу вpоде и всё...
С пpиветом /*Dr.RaVeN*/

Winamp сдох, но обещал веpнуться!.
* Origin: Поставили мы с Максом Windows98 и тоpмознули кpутейши (2:5009/2.144)


SysInfo

Glad To Read You, StyleR !

Четверг Октябрь 09 2003 Было когда-то 10:19, и StyleR говорил с Max Irgiznov, и
задумал я присоединиться:

S>>> ! Hатолкните, пожалуйста, на функции, по которым можно узнать
S>>> название материнской платы, название и частоту проца, название
S>>> винчестера, название видюхи, объем винта, объем опертивки
S>>> (желательно с типом(дим, сим) и по количеству модулей) пытался
S>>> копать в сторону GetSystemInfo, но поиск не дал результатов.. :-(
S>>> Конечно, одна функция на все вопросы не оветит :-)), но, может
S>>> кто0нить этим уже занимался, может поможете????
MI>> Первое: поискать соответствующую библиотеку на интеловском сайте
MI>> или файл VBCPUINF
S> .dll?
S> А ты мне прислать на мыло не сможешь?
.zip пиши свой е-мыл в нетмаил.

MI>> Второе: Есть такая замечательная вещь как WMI там все
S> А что это контрол или библиотеки?
Это инфраструктура. :) Внизу подробно написано.
S> Как расшифровывается, где взять? :)))
Вот цитата из MSDN

-=Погрызено из Windows Clipboard отсюда=-
WMI OverviewSee Also
Windows Management Instrumentation (WMI) is a scalable system management
infrastructure that uses a single consistent, standards-based, extensible,
object-oriented interface. WMI provides you with a standard way to interact
with system management information and the underlying WMI APIs. WMI is used
primarily by system management application developers and administrators to
access and manipulate system management information.

WMI can be used to build tools that organize and manage system information so
that administrators or system managers can monitor system activities more
closely. For example, you can develop an application using WMI that pages an
administrator when a Web server crashes.
-=И до сюда=-

msdn.microsoft.com там есть примеры работы с этим делом.

MI>> есть, одна беда этой штуки нет под 98, точнее есть но надо
MI>> ставить.
S> Мне под 98, NT4.0, w2k, wxp :-)))
Проверил, да действительно оно ставится отдельно, весит немного.

Пока,StyleR!!! С Уважением - Max Irgiznov [VS] [FreeBSD] [.NET]

* Origin: Конец - телу венец. (2:5051/36.20)


Re[2]: Правильная конструкция

From: Dmitry Miloserdov

Привет, Alexander,

Thursday, October 9, 2003, 10:33:26 PM, ты писал:
>> Подскажите правильную конструкция
>> как пробежаться в цикле по ячейкам
>> столбца от текущей до первой пустой
>> ячейки в этом же столбце.
AT> int current = Столбец.Текущая_Ячейка;
AT> for(int i = current; i < Стобец.Ячейки.Всего; i++)
AT> if ( Столбец.Ячейки[i] == "" ) break;

Угу. А еще лучше - return i; }

или
mov eax, [ebp + ColRawDataOffset]
or eax, eax
jz done
jmp GetNextRaw :)

Hо позволю себе все-таки привести пример на эхотаге :)

For i = 1 To xlObj.Rows.CurrentRegion.Rows.Count
if Len(xlObj.Cells(i, MyCol).Text)=0 Then Exit For
Next i






--
Best regards,
Dmitry Miloserdov
www.softmajor.com




* Origin: www.softmajor.com (2:5020/400)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты