asp.net のログイン制御とメンバーシップを使用して、asp.net にログインしたままにする方法を実装する方法
質問する
7014 次
2 に答える
1
チェックボックスを追加することで..
チェックされている場合は認証付きのCookieを作成する必要があり、チェックされていない場合はセッションに入れる必要があります
http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstate.aspx
別の方法は、そのようにチェックされていない場合、永続的ではない Cookie を実装することです。
int timeout = rememberMe ? 525600 : 30; // Timeout in minutes, 525600 = 365 days.
var ticket = new FormsAuthenticationTicket(userName, rememberMe, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = System.DateTime.Now.AddMinutes(timeout);
cookie.HttpOnly = true; // cookie not available in javascript.
Response.Cookies.Add(cookie);
于 2013-03-28T07:08:19.473 に答える
0
最初に、次のようにログイン ボタンのクリック時に Cookie を作成し、ログインの詳細を保存する必要があります。
protected void btnLogin_Click(object sender, System.EventArgs e)
{
string username = txtUsername.Text;
string Password = txtPassword.Text;
// Create Cookie and Store the Login Detail in it if check box is checked
if ((CheckBox1.Checked == true)) {
HttpCookie mycookie = new HttpCookie("LoginDetail");
mycookie.Values("Username") = txtUsername.Text.Trim();
mycookie.Values("Password") = txtPassword.Text.Trim();
mycookie.Expires = System.DateTime.Now.AddDays(1);
Response.Cookies.Add(mycookie);
}
Response.Redirect("Default2.aspx");
}
次に、Cookie が存在するかどうかを確認します (remember me がチェックされています)。存在する場合は、次のように詳細を入力します。
protected void Page_Load(object sender, System.EventArgs e)
{
//check if cookie exist then login page from
if ((Response.Cookies("LoginDetail") != null)) {
//Username
string uname = Response.Cookies("LoginDetail").Values("Username").ToString();
string pass = Response.Cookies("LoginDetail").Values("Username").ToString();
Response.Redirect("Default2.aspx");
}
}
于 2013-03-28T09:34:49.447 に答える