Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

ikn


Принципиальный молчун

Зарегистрирован:
08 October 2003
Сообщения: 7
Примеры кода: 0
 

WMI + MS DNS + Локальная машина права юзера.

08 October 2003 20:49  


Доброго времени суток.
Такая проблема. Необходимо править записи зон DNS сервера из кода на ASP.NET
Дано:
Windows'2000 Server. Stand Alone (т.е. домена нет) На нем крутится 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
Нормально выполняется с правами админа, (в Web.config добавлено
<identity impersonate="true" userName="<localmachine_name>\administrator"
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" На строке

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

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

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

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

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



Общие вопросы программирования на ASP.NET

 WMI + MS DNS + Локальная машина права юзера.ikn  08 October 2003 20:49
 RE: WMI + MS DNS + Локальная машина права юзера.Shtin  05 February 2004 09:36
 RE: WMI + MS DNS + Локальная машина права юзера.ikn  15 October 2003 20:26
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта