我目前仍然是一名初级程序员,并且已经接替了以前的程序员,我正忙着继续他的ASP.NET网站。他创建了自己的登录名,但我无法弄清楚如何将当前登录的用户显示在ReadOnly文本框中。
textBox是readonly的原因是因为一旦用户登录到网站,任何插入SQL数据库的数据都会添加当前登录的用户ID,但为了方便,用户名会显示在readOnly文本框中。 / p>
这是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 Class
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;
}
}
如何将当前登录的userName加载到ReadOnly textBox中,并将记录添加到数据库中以获取当前登录用户的userID。
我正在使用C#,Sql server和linq
谢谢
答案 0 :(得分:3)
由于登录代码设置了form-auth cookie,您应该可以使用:
public static string GetUsername() {
var ident = System.Web.HttpContext.Current.User.Identity;
return ident.IsAuthenticated ? ident.Name : null;
}
答案 1 :(得分:1)
将username
分配给TextBox
就像
Textbox1.Text = username;
要获取UserID
的{{1}},您需要拨打Current Login User
select query
您的Select UserId from tablename where username = "Pass username";
必须是唯一的,否则您将从此查询中获得多个username
。
您需要使用此类方案。
希望您理解并为您服务。