gpt4 book ai didi

c# - C# ASP.NET 中的连接字符串问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:08 25 4
gpt4 key购买 nike

我正在处理的当前程序是用于购物车的注册页面,我已经设置了一个带有表的 SQL Server 以允许将数据记录为

  1. 用户名,
  2. 电子邮件,
  3. 密码全部设置为 Nvarchar(max)

.NET Framework 的版本是 4.5,我正在使用 VS 2012 并使用 C# 进行编码,服务器是一个使用集成 Windows 身份验证的 SQL Server 实例 KENSULLIVAN-PC\KSSQL

到目前为止,我已经能够运行注册页面以保存信息的 cookie,但不会向 SQL Server 中的表发送任何信息。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

public partial class Account_Register : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
}
//Submit button for user registration information
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
int TheUserID = 5000;
SqlConnection conn = new SqlConnection("Server=KENSULLIVAN-PC/KSSQL;Database=GroupProject; Integrated Security=True");

//INSERT command for values to be updated or added to the Database
SqlCommand comm = new SqlCommand("INSERT INTO RegUser (UserName, Email, Password) VALUES (@UserName, @Email, @Password)", conn);
comm.Parameters.Add("@UserName", System.Data.SqlDbType.NVarChar, 100);
comm.Parameters["@UserName"].Value = RegisterUser.UserName;
comm.Parameters.Add("@Email", System.Data.SqlDbType.NVarChar, 100);
comm.Parameters["@Email"].Value = RegisterUser.Email;
comm.Parameters.Add("@Password", System.Data.SqlDbType.NVarChar, 100);
comm.Parameters["@Password"].Value = RegisterUser.Password;

try
{
conn.Open();
comm.ExecuteNonQuery();
Response.Redirect("~/LoggedIn.aspx");
}
catch
{
//ErrorDB.Text = "Error Submitting, Try Again";
}
finally
{
conn.Close();
}

FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
string continueUrl = RegisterUser.ContinueDestinationPageUrl;

if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/LoggedIn.aspx";
}
Response.Redirect(continueUrl);
}
}

我应该采取哪些不同的做法,您注意到哪些地方不是真正推荐的?

谢谢,肯尼斯

最佳答案

我看到了几个可能的问题。

首先,SQL 数据库的实例名称应该使用反斜杠。当然你需要转义那个反斜杠,所以试试这个:

SqlConnection conn = new SqlConnection("Server=KENSULLIVAN-PC\\KSSQL;Database=GroupProject; Integrated Security=True");

其次,ASP.NET 的集成安全性可能有点棘手,因为它通常是从服务或系统帐户运行的。您可能希望在 MS-SQL 中启用 MIXED 身份验证模式,创建一个 SQL 帐户,并传入用户名和密码。我建议将您的连接字符串存储在 web.config 中并对其进行加密。

您是否收到了特定的错误/异常?这对我们很有帮助。

关于c# - C# ASP.NET 中的连接字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15777068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com