powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# где хранить строку подключения
25 сообщений из 107, страница 2 из 5
C# где хранить строку подключения
    #38120160
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ3. Для особо ранимых - можно шифровать секции нативными RSA или DPAPI ключами http://codearticles.ru/home/articleview/450
Ссылка битая, http://codearticles.ru/home/articleview/450
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120174
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, МСУ

Я говорю про десктопное вин-приложение, которое напрямую коннектится к sql-серверу. Двухзвенка. С вин-авторизацией, бог с ней. Какой нахрен WebConfigurationManager? Где десктопному клиенту хранить строку подключения?
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120176
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

2. DPAPI (Data Protection API) а вот это понравилось. А то как-то огород городил с RSA)
авторКонф. файлы шифруются с помощью ключа, специфичного для машины. для всех ОС работает?
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120181
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Вы издеватесь? Или принципиально не читаете ответов?

Третий и последний раз - строка соединения хранится в app.config, просто идеальный вариант - когда используется Win-аутентификация. Можно и с логином/паролем, но тогда нужно исходить из того, что он легко компрометируем
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120182
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

хранить в конфиге, но шифровать вышенаписанными методами.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120187
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyArm79, МСУ

Я говорю про десктопное вин-приложение, которое напрямую коннектится к sql-серверу. Двухзвенка. С вин-авторизацией, бог с ней. Какой нахрен WebConfigurationManager? Где десктопному клиенту хранить строку подключения?

Я тоже гооворю про десктопное. Какая разница, будет не WebConfigurationManager, а просто ConfigurationManager.
Зри в корень http://msdn.microsoft.com/ru-ru/library/system.configuration.sectioninformation.protectsection.aspx

Код: c#
1.
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);



С конфигами в вебе и десктопе работается одинаково, не знал? :)
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120189
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanдля всех ОС работает?
Для всех.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120196
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyГде десктопному клиенту хранить строку подключения?
Ты читаешь жопой? Я десятый раз повторяю - в конфиге! Но если тспользуется sql server аутентафикация, за такое нужно расстреливать на месте.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120198
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79app.configЯсно.
Заменили один левый файл другим. Только без гуя.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120200
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyArm79app.configЯсно.
Заменили один левый файл другим. Только без гуя.
Хватит бред нести. В веб конфиге 100500 секций, в гавно-UDL только одна. Ты сравниваешь теплое с мягким.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120202
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyодин левый файл другим

Это жесть... Я даже не знаю, что сказать. Назвать левым app.config и сравнить его с малоизвестным udl...
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120205
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Antonariyодин левый файл другим

Это жесть... Я даже не знаю, что сказать. Назвать левым app.config и сравнить его с малоизвестным udl...
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120207
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если программе потребуется 10 строк соединений, это будет 10 UDL файлов? :)
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120225
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

вы его недооцениваете. Хотя общее есть - и там и там текст.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120233
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЗаменили один левый файл другим. Только без гуя

Вот, специально для вас постарался. Студийный Гуй с исходниками
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120235
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чему только я Antonariy не учил, но никогда не мог подумать, что придется втирать ему в моск информацию про конфиги (первый класс вторая четверть)
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120239
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79AntonariyЗаменили один левый файл другим. Только без гуя

Вот, специально для вас постарался. Студийный Гуй с исходниками
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120240
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120269
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, как вообще можно не знать про конфиги? Даже маломальски унылое приложеньице использует конфиг, пусть то сайтик, веб-сервис, wcf, winforms, wpf, silverlight и т.д. Ты что-нибудь вообще (кроме хеллоуворлда) писал на .NET?
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120387
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУAntonariy, как вообще можно не знать про конфиги? Даже маломальски унылое приложеньице использует конфиг, пусть то сайтик, веб-сервис, wcf, winforms, wpf, silverlight и т.д. Ты что-нибудь вообще (кроме хеллоуворлда) писал на .NET?Зацени:


Это ashx-сервер, дружащий с EF:
Код: vbnet
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.
Imports System.Web
Imports System.Web.Services
Imports TypeScriptReflect

<TSReflect(ClassTypes.ctBusinessLayer)>
Public Class Production
    Inherits Handler

    Public Function GetList(ByVal Page As Integer, ByVal Records As Integer) As Response
        Dim mResp As New Response
        Dim sSQL As String = MyBase.State.GetListSQL("ksmtProduction", "ProductionID", Page, Records, "Publish=1")
        Dim rec As List(Of ksmtProduction) = MyBase.db.Database.SqlQuery(Of ksmtProduction)(sSQL).ToList
        mResp.Rowset.rows = From v In rec Select v.Code, v.Name, v.ProductionID, v.ProdName, v.ProdOwnerForm
        Return mResp
    End Function

    Public Function SaveRecord(ByVal value As tblProduction, Optional ByVal OKPCode As String = "") As Response
        value = From v In MyBase.db.tblProduction Where v.ProductionID = value.ProductionID
        If IsDBNull(value.AddTime) Then
            value.AddTime = Now
            value.AddPassportID = MyBase.State.PassportID
        Else
            value.LastUpdate = Now
            value.UpdatePassportID = MyBase.State.PassportID
        End If
        MyBase.db.tblProduction.Add(value)
        If Len(OKPCode) > 0 Then
            If (From v In MyBase.db.ksmtCatalogueProd Where v.CatCode = OKPCode And v.ProductionID = value.ProductionID And v.ClassificatorID = 1).Count = 0 Then
                MyBase.db.tblObjectCatalogue.Add(New tblObjectCatalogue((From v In MyBase.db.tblCatalogue Where v.ClassificatorID = 1 And v.Code = OKPCode Select v.CatalogueID).Single, WIT_PRODUCTION, value.ProductionID))
            End If
        End If

        Dim mRes As New Response()
        mRes.Rowset.rows = From v In MyBase.db.tblProduction Where v.ProductionID = value.ProductionID
                  Select v.ProductionID, v.Code, v.Name
        Return mRes
    End Function
End Class

Imports TypeScriptReflect

<TSReflect(ClassTypes.ctTransport)>
Public Class Response
    Public [Rowset] As Rowset
    Public Test As String

    Public Sub New()
        Rowset = New Rowset
    End Sub
End Class

<TSReflect(ClassTypes.ctTransport)>
Public Class Rowset
    Public localRowset As Boolean
    Public entire As Integer
    Public total As Integer
    Public rows As IEnumerable(Of Object)
End Class



Это TypeScript, file1.ts. Интеллисенс и все такое:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
/// <reference path="AjaxAshxService.ts" />

function getList() {
    AjaxAshxService.Production.GetList(1, 10, function (Response: Response) {
        alert(Response.toString());
    });
}

function save() {
    var prod = new tblProduction;
    prod.ProductionID = 22;
    prod.Name = "23222222222";
    AjaxAshxService.Production.SaveRecord(prod, null, function(Response: Response) { 
        alert(Response.toString());
    });
}



Это его вызов:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script src="TSApp/KSMT.edmx.js"></script>
    <script src="TSApp/AjaxAshxService.js"></script>
    <script src="TSApp/file1.js"></script>
</head>
<body>
    <h1>TypeScript HTML App</h1>
    <input type="button" value="get" onclick="getList()" />
    <input type="button" value="save" onclick="save()" />
</body>
</html>

Это 100% ручного быдлокода (не считая конфига), описывающего логику сферического ajax-приложения, причем сервер на c# будет еще лаконичнее. Все, что лежит за этими блоками, — кодогейнерация "из коробки" и сама коробка.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120449
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЗацени
Хрень какая-то. Ты эт к чему?
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120487
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я к тому, какие хэлловорлды пишу под .net. Строго типизированные серверные объекты без ручного кодирования этих типов в браузере. Чтобы быдлокодинг был менее быдл и более защищен от ошибок.

Сравни с тем, как аналогичный json формировался ранее (беременных и нервных убрать от экрана):
Код: xml
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.
<xsl:template match="WCECOMMAND">
    "nameField":"Name",
    <xsl:choose>
        <xsl:when test=".='EDITRECORD' or .='ADDRECORD'">
            <![CDATA[
            "nameField":"Name",
            "fields":[[
	            { "field": "", "title": "ID", "width": 50, "type": "id","viewitem":"VIEWPRODUCTION" },
	            { "field": "Name", "title": "Наименование" },
              { "field": "OKPCODE", "title": "Код ОКП"
              ]]>
            <xsl:if test="string-length(//OKPCODE)!=0">
                ,"readonly":true
            </xsl:if>
            <![CDATA[
              },
	            { "field": "Code", "title": "Расширение кода ОКП" },
	            { "field": "UnitID", "title": "Единицы измерения",]]>
            <xsl:apply-templates select="/UWS/UNIT" mode="selectData"/>
            <![CDATA[
              },
	            { "field": "NormDocName", "title": "Тип нормативного документа","type":"select","data":[
                {"ID":"ГОСТ","Name":"ГОСТ"},
                {"ID":"ТУ","Name":"ТУ"},
                {"ID":"СТО","Name":"СТО"}
              ]},
	            { "field": "FileID", "title": "Нормативный документ", "type": "selector", "selectorUrl": "?WCI=FILES&WCE=LIST.PRODUCTION.]]><xsl:value-of select="/UWS/UWSHEAD/WCEVALUE"/><![CDATA["},
	            { "field": "ProducerIsSupplier", "title": "Производитель является поставщиком", "type": "checkbox" },
	            { "field": "Publish", "title": "Публиковать","type":"checkbox" },
	            { "field": "Comments", "title": "Комментарии", "type":"textarea"},
	            { "field": "Description", "title": "Описание", "type": "texteditor" }
            ]],
            "dialogTitle": "Продукция",
            "tabtitle": "Основные данные",
            "subdata":[
            ]]>
            <xsl:apply-templates select="/UWS/PRODFILES"/>
            <xsl:apply-templates select="/UWS/CATALOGUE"/>
            <xsl:apply-templates select="/UWS/PRICE"/>
            {
            "tabtitle": "Изображение",
            "HTML": "<![CDATA[<br/><form method='post' class='logo_upload' enctype='multipart/form-data' target='files_upload' action='?WCI=PRODUCTION&WCE=UPLOADIMAGE.PICTURE.]]>
            <xsl:value-of select="parent::*/WCEVALUE"/>
            <![CDATA['><center><input type='file' name='logo'/><input type='submit' value='Загрузить картинку'/><img width='160px' id='PRODUCTION_PICTURE_]]>
            <xsl:value-of select="parent::*/WCEVALUE"/>
            <![CDATA[' src='?WCI=PRODUCTION&WCE=GETIMAGE.PICTURE.]]>
            <xsl:value-of select='parent::*/WCEVALUE'/>
            <![CDATA['/></center></form>"]]>
            }],
        </xsl:when>
        <xsl:when test=".='PAGE' or .='FIND'">
            <![CDATA[
            "nameField":"Name",
            "fields":[[
              { "field": "", "title": "ID", "width": 50},
              { "field": "Code", "title": "Код", "width": 70 },
              { "field": "Name", "title": "Наименование", "width": 200 },
              { "field": "Supplier", "title": "Производитель/дистрибьютор", "width": 200 },
              { "field": "Del", "title": "Удалить", "width": 70, "align": "center", "visible": "false" }
            ]],
            "dialogTitle": "Продукция",
            ]]>
        </xsl:when>
    </xsl:choose>
</xsl:template>

...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120532
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyдружащий с EF
Это, безусловно, признак высокого мастерства :-)

Antonariyбеременных и нервных убрать от экрана
А чем так страшен xslt для вышеуказанных категорий граждан и неграждан?

В любом случае я так до сих пор и не пойму, как человек, умеющий пользовать ORM, не имеет понятия о файлах конфигурации?

Вы в своих сервисах/приложениях используете фреймворки логирования? NLog/log4net?
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120784
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЭто я к тому, какие хэлловорлды пишу под .net.
Ничего сложного и необычного. Вопрос по поводу конфигов, ты где строку соединения для EF хранишь, когда выполняешь MyBase.db.Database.SqlQuery? Покажи свой web.config.

AntonariyСравни с тем, как аналогичный json формировался ранее (беременных и нервных убрать от экрана)
Оба способа имеют место на жизнь, в зависимости от ситуации. В xslt есть большой плюс - это темплейтовый декларативный движок, можно на лету без перекомпиляции кода влиять на вывод.
...
Рейтинг: 0 / 0
C# где хранить строку подключения
    #38120812
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в итоге с сделал так:


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    public class conn
    {
        public static string login;
        public static string psw;
        public static string role;

        public String str_conn(String l, String p)
        {
        return "Data Source = SQL; Initial Catalog = project; User ID=" + l + "; Password=" + p + ";";    
        }
    }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        private void button2_Click(object sender, EventArgs e)
        {
            conn c=new conn();
            conn.login = textBox1.Text;
            conn.psw = textBox2.Text;

            using (SqlConnection connection = new SqlConnection(c.str_conn(conn.login, conn.psw)))
            {
                try
                {
                    SqlCommand command = new SqlCommand("select 1", connection);




Как вам такое?
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 2 из 5
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# где хранить строку подключения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]