我目前仍然是一名初级程序员,并且已经从以前的程序员那里接手,我正忙于继续他的 ASP.NET 网站。他创建了自己的登录名,我不知道如何将当前登录的用户显示到只读文本框中。
文本框是只读的原因是因为一旦用户登录到网站,任何插入 SQL 数据库的数据都会添加当前登录的用户 ID,但为了方便起见,用户名显示在只读文本框中。
这是 login.aspx 的代码
protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e)
{
LoggedMember member = new LoggedMember();
if (LoginUser.UserName.Contains('@'))
{
member = Login.LogInContact(LoginUser.UserName, LoginUser.Password);
}
else
{
member = Login.LogInUser(LoginUser.UserName, LoginUser.Password);
}
if (member.ID != 0)
{
Session["LoggedMember"] = member;
FormsAuthentication.SetAuthCookie(member.UserName, true);
e.Authenticated = true;
Response.Redirect("~/pages/Monitor.aspx");
}
else
{
Session["LoggedMember"] = null;
e.Authenticated = false;
}
}
LoggedMember 类
public class LoggedMember
{
public int ID { get; set; }
public string UserName { get; set; }
public UserProfile Profile { get; set; }
}
登录类
public class Login
{
public static LoggedMember LogInUser(string username, string password)
{
LoginContext db = new LoginContext();
User user = db.Users.Where(u => u.UserName == username && u.Password == password).SingleOrDefault();
LoggedMember member = new LoggedMember();
if (user != null)
{
if (user.UserID != 0)
{
member = new LoggedMember()
{
ID = user.UserID,
UserName = user.UserName
};
}
}
if (user != null)
{
member.Profile = UserProfile.GetUserProfileAndSettings((int)user.UserProfileID);
}
else
{
member.Profile = UserProfile.GetUserProfileAndSettings(0);
}
return member;
}
public static LoggedMember LogInContact(string username, string password)
{
LoginContext db = new LoginContext();
Contact contact = db.Contacts.Where(u => u.Email == username && u.Password == password).SingleOrDefault();
LoggedMember member = new LoggedMember();
if (contact.ContactID != 0)
{
member = new LoggedMember()
{
ID = contact.ContactID,
UserName = contact.FirstName + ' ' + contact.LastName
};
}
return member;
}
}
我将如何将当前登录的用户名加载到只读文本框中,一旦将一条记录添加到数据库中以获取当前登录用户的用户 ID。
我正在使用 C#、Sql 服务器和 linq
谢谢