Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155

Открыть новую тему     Написать ответ в эту тему

mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ЧЯДНТ (что я делаю не так)?

 
https://stackoverflow.com/questions/2441290/net-json-serialization-of-enum-as-string

Всего записей: 263 | Зарегистр. 31-07-2002 | Отправлено: 23:41 30-08-2018
Kyplon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mxm1975 Спасибо за наводку!
Вопрос решен буквально одной строкой в Startup.cs, в ConfigureServices нужно добавить

Код:
services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()); });

Результат: JSON со значением "dog"
Что и требуется =)

Всего записей: 164 | Зарегистр. 14-09-2007 | Отправлено: 12:11 31-08-2018 | Исправлено: Kyplon, 12:12 31-08-2018
RemComm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую.
 
Как выполнять имперсонацию пользователей в процессе, запущенном он обыного (без админ привилегий) пользователя?
 
Поясню.
 
Есть простой WCF сервис на NetTcpBinding с
 
SecurityMode.TransportWithMessageCredential и ClientCredentialType = MessageCredentialType.Windows
 
 
Контракт сервиса:

Код:
[ServiceContract]
public interface ISvc
{
  [OperationContract]
  int TestMethod1(int i);
}

 
Реализация:

Код:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class Svc : ISvc
{
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public virtual int TestMethod1(int i)
{
    SqlConnectionStringBuilder sqlcb = null;
    sqlcb = new SqlConnectionStringBuilder()
    {
      DataSource = "(local)",
      IntegratedSecurity = true,
    };
    using (SqlConnection sqlc = new SqlConnection(sqlcb.ConnectionString))
    {
      sqlc.Open();
 
      // get data from SQL
 
      sqlc.Close();
    }
    return i + 1;
  }
}

 
При обращении к методу службы - оная падает с исключением:
 
Can not load file or assembly System.Data.dll .... Either a required impersonation level was not provided, or the provided impersonation level is invalid. (Exception from HRESULT: 0x80070542)
 
И при императивной имперсонации - та же беда:
 
Реализация:

Код:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class Svc : ISvc
{
[OperationBehavior(Impersonation = ImpersonationOption.NotAllowed)]
public virtual int TestMethod1(int i)
{
    using (WindowsImpersonationContext ctx = CurrentPrincipal.Identity.Impersonate())
    {
        SqlConnectionStringBuilder sqlcb = null;
        sqlcb = new SqlConnectionStringBuilder()
        {
            DataSource = "(local)",
            IntegratedSecurity = true,
        };
        using (SqlConnection sqlc = new SqlConnection(sqlcb.ConnectionString))
        {
            sqlc.Open();
 
            // get data from SQL
 
            sqlc.Close();
        }
    }
    return i + 1;
  }
}

 
То же исключение выбрасывается при открытии соединения.
 
Согласно интернету, ошибка 0x80070542 - это BAD IMPERSONATION. Однако дальнейшее гугление не привело к понимаю природы такого поведения. Тип привязки не важен - воспроизводится на всех допустимых привязках. При запуске с админ привилегиями - все работает.
 
Как пролечить?

Всего записей: 697 | Зарегистр. 30-09-2003 | Отправлено: 16:53 11-10-2018 | Исправлено: RemComm, 17:27 11-10-2018
RemComm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел причину. Теперь код работает как ожидается. Извините за беспокойство.

Всего записей: 697 | Зарегистр. 30-09-2003 | Отправлено: 18:11 13-10-2018
4seasons



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется рабочая программа и программа обновлений рабочей программы (обе написаны на vb.net).
Мне нужно реализовать механизм обновлений своих программ по принципу обновлений самой студии, когда из студии запускается программа обновлений, а после обновления студии из программы обновлений запускается уже обновленная студия.
 
Вопрос:
Как из рабочей программы запустить программу обновлений так, чтобы та после этого смогла заменить рабочую программу на другую версию?
Иначе говоря, как запустить программу №2 из программы №1 так, чтобы процесс №2 не был дочерним процессом программы №1?

Всего записей: 1202 | Зарегистр. 31-05-2009 | Отправлено: 18:14 15-10-2018 | Исправлено: 4seasons, 20:47 15-10-2018
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
4seasons
https://www.experts-exchange.com/questions/27399793/Killing-parent-process-without-closing-child-process.html
https://www.google.com/search?hl=en&q=c%23+create+detached+process&sa=X&ved=0ahUKEwi6uY-O34neAhUDx58KHUBeBU0Q1QIImgEoAA

Всего записей: 3907 | Зарегистр. 31-03-2002 | Отправлено: 03:56 16-10-2018 | Исправлено: dneprcomp, 03:57 16-10-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru