私は現在まだジュニア プログラマーであり、以前のプログラマーから引き継ぎました。彼の ASP.NET Web サイトの作成に忙しくしています。彼は自分のログインを作成しましたが、現在ログインしているユーザーを読み取り専用テキストボックスに表示する方法がわかりません。
textBox が読み取り専用である理由は、ユーザーが Web サイトにログオンすると、SQL データベースに挿入されるすべてのデータが現在ログインしているユーザー ID に追加されるためですが、便宜上、ユーザー名は読み取り専用の textBox に表示されます。
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;
}
}
現在ログインしているuserNameをReadOnlyテキストボックスにロードし、データベースにレコードを追加して現在ログインしているユーザーのユーザーIDを取得するにはどうすればよいですか。
私はC#、Sqlサーバー、linqを使用しています
ありがとうございました