ورود

View Full Version : ساخت کانکشن استرینگ در webconfig



tc1000
جمعه 31 فروردین 1386, 03:33 صبح
با سلام من یک Connction string توی فایل web.config ساختم و بعد توی برنامه خودم هم داره کار میکنه حالا یه سئوال جالب برای من پیش امده هیچ جایی من از username و password اس کیو ال نزدم. این چوری کار می کنه؟
کد برنامه:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<system.web>
<compilation defaultLanguage="vb" debug="true" />

<customErrors mode="Off" />

<authentication mode="Windows" />

<authorization>
<allow users="*" />
</authorization>


<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>


<globalization requestEncoding="utf-8" responseEncoding="utf-8" />



</system.web>
<appSettings>
<add key="strcon" value="server=localhost; database=test; trusted_connection=yes"/>
</appSettings>

</configuration>

و کد ASP.NET:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn As SqlConnection

Dim strcon As String
strcon = ConfigurationSettings.AppSettings("strcon")
conn = New SqlConnection(strcon)
Dim mydataset As New Data.DataSet
Dim myadapter As New SqlDataAdapter
Dim cmd As New SqlCommand("Insert Into tbl_rec (name,pass) values(@name,@pass) ", conn)
cmd.Parameters.AddWithValue("@name", "Mobile")
cmd.Parameters.AddWithValue("@pass", "Text")
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Sub
1- ایا وارد کردن اطلاعات به این صورت امنیت برنامه رو پایین میاره ؟
2- در ضمن این روش وارد کردن اطلاعات در اس کیو ال بهتره یا با sp ؟

در صورت مثبت بودن سئوال شماره 2 یک نمونه کد که جایگزین میشه در asp.net و یک کد برای sp برای من بنویسید ممنون میشم.
خیلی بهش نیاز دارم؟

chemical
جمعه 31 فروردین 1386, 08:42 صبح
1. بهتره ConnectionStrring رو توی Web.Config رمز نگاری (Hash) کنی.
2. همیشه استفاده از SP بهتره.



CREATE PROCEDURE usp_Insert
@name nvarchar(30),
@pass varchar(15)
AS
Insert Into tbl_rec (name,pass)
values(@name,@pass)

Dim myCmd As New SqlCommand = new SqlCommand("usp_Insert", conn)
myCmd.CommandType = CommandType.StoredProcedure
myCmd.Parameters.Add("@name", SqlDbType.Nvarchar)
myCmd.Parameters.Add("@pass", SqlDbType.Varchar)
myCmd.Parameters("@name").Value = "Mobile"
myCmd.Parameters("@pass").Value = "Text"
conn.Open()
myCmd.ExecuteNonQuery()
conn.Close()

rtech
جمعه 31 فروردین 1386, 09:41 صبح
اینکه از شما User و Pass نمیخواهد به خاطر این است شما دارید به صورت لوکال از آن استفاده میکنید به محض آپلود بر روی هاست اروری دریافت خواهید کرد و در اونجاست که باید یوزرنیم و پسورد و آدرس دیتابیس رو به صورت دقیق مشخص کنید البته اگر روی دیتابیس خود بر روی Local هم پسورد گذاشته باشید باید در Web.config آن را مشخص کنید.

tc1000
جمعه 31 فروردین 1386, 12:51 عصر
با تشکر از ذوستان
1- لطفا بگید چطوری من این قسمت رو در web.config هش کنم ( کد )
2- من روی اون دیتا بیس هم که در لومال هست پسورد دارم ولی دره کار میکنه
هم روی sa پسورد دارم و هم روی اون یوزری که به دیتا بیس تخصیص دادم