如何将连接字符串保存在应用程序变量中
本文关键字:存在 应用程序 变量 保存 字符串 连接 | 更新日期: 2023-09-27 18:18:49
在登录页面中,我通过以下代码确定用户是否为admin:
if (r.IsUserInRole(txtUserUsername.Text, "User") == true)
{
connection = ConfigurationManager.ConnectionStrings["GameHutDBEntities1"].ToString();
switch (new BusinessLayer.Users().ValidateLogin(txtUserUsername.Text, txtUserPassword.Text, connection))
{
case Helpers.LoginStatus.LoginSuccessful:
{
Response.Write("<Script> alert('Welcome to GameHut Admin Panel!')</Script>");
FormsAuthentication.RedirectFromLoginPage(txtUserUsername.Text, chkRemember.Checked);
break;
}
case Helpers.LoginStatus.Blocked:
{
Response.Write("<Script> alert('Account Blocked')</Script>");
break;
}
case Helpers.LoginStatus.Invalid:
{
Response.Write("<Script> alert('Invalid username or password')</Script>");
break;
}
}
}
在连接类中,我按如下方式传递连接字符串:
public class ConnectionClass
{
public GameHutDBEntities Entities { get; set; }
public System.Data.IDbTransaction Transaction { get; set; }
public ConnectionClass()
{
this.Entities = new GameHutDBEntities();
}
public ConnectionClass(GameHutDBEntities _Entities)
{
this.Entities = _Entities;
}
public ConnectionClass(GameHutDBEntities _Entities, string conn)
{
this.Entities = _Entities;
this.Entities.Connection.ConnectionString = conn;
}
}
管理员被记录并重定向到另一个页面后,连接字符串丢失并设置默认连接字符串?有人能告诉我如何保持连接字符串,只要用户登出。
这是因为您在web表单代码中实例化类,并且由于ASP,当您切换到另一个页面时,实例化对象丢失。净无国籍。
如果需要重用连接字符串,将其保存在会话变量中:
Session["conn"] = "connection string";
你可以在任何你想要的地方重用它。
还有其他几个选项,比如缓存,或者静态属性,甚至每次你想要使用它时都从配置中读取它。这完全取决于使用的上下文。
编辑:要从配置中读取连接字符串,可以使用System.Configuration
中的ConfigurationManager
类:
string conn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
将连接字符串名称保留在数据访问层内,并从Web读取。