Короткий ответ: Вы не можете без пароля пользователя или пользователя, называющего Ваш сервис через COM.
Для исполнения роли другого пользователя в процессе необходимо звонить ImpersonateLoggedOnUser
. ImpersonateLoggedOnUser
требует маркерного дескриптора. Существует несколько способов, которыми можно получить маркерный дескриптор:
LogonUser
. Это однако требует, чтобы Вы знали пароль пользователя. CreateRestrictedToken
, DuplicateToken
, или DuplicateTokenEx
. OpenProcessToken
или OpenThreadToken
Я установил это на своем компьютере, и он работал нормально. После просмотра вашего примера страницы проблема в том, что вы установили изображение на display: block
. Либо удалите это правило из вашего общего правила img
(в любом случае странная вещь для глобального использования), либо измените правило изображения, которое вы разместили выше, на следующее:
div.images div.small img
{
vertical-align: middle;
max-width: 200px;
max-height: 200px;
display: -moz-inline-box; /* Firefox 2 */
display: inline-block;
}
По умолчанию img
element и другие «заменяемые» элементы (Flash и т. д.) являются «inline-block» - это означает, что они размещаются в строке как текст, но имеют ширину и высоту.
Мне нужно было сделать то же самое некоторое время назад, и я нашел хорошую реализацию в по этой ссылке . «Центрировать изображение внутри div по вертикали и горизонтали, не зная размера изображения».
У меня это работает так, как задумано.
Однажды я столкнулся с этой проблемой вертикального центрирования и, чтобы она работала правильно во всех браузерах, я обратился к javascript / jQuery:
$(document).ready(function() {
$('img').each(function() {
image_height = $(this).height();
margin_top = (200 - image_height) / 2;
$(this).css('margin-top', margin_top + 'px');
});
});
Обратите внимание, что вам понадобится $ (window) .load вместо $ (document) .ready, если размеры изображения не указаны в html.
пробовали ли вы использовать:
display:block;
margin-left:auto;
margin-right:auto;
, который должен центрировать элементы уровня блока