【发布时间】:2011-12-27 15:25:29
【问题描述】:
在登录页面中,我通过以下代码确定用户是否为管理员:
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;
}
}
在管理员登录并重定向到另一个页面后,连接字符串丢失并且设置了默认连接字符串?只要用户注销,有人可以告诉我如何保留连接字符串。
【问题讨论】:
-
使用缓存或会话变量。每个用户的连接字符串是否不同?如果不是,只需调用您的 ConnectionClass 并缓存您的值。
-
你为什么要把它传给 DAL?! DAL 应该关心它,而不是业务逻辑或表示层。
-
另外我建议用 MembershipProvider (Membership.ValidateUser()) 包装你的 UserRepository (BusinessLayer.Users)
-
每个用户的连接字符串都不同,这是问题
-
以不同的名称将所有内容保存在 Web.config 中。不能吗?
标签: c# asp.net .net connection-string