Asp.NetForms認証
前言:
社内システムの開発に携わっているため、ログインユーザ情報をセッションに保存している.Forms認証は何も使ったことがありませんが、最近この方面のものを研究して、貼って、レンガを撮ることを歓迎します.
Froms認証:
1つ目:
HttpContext.Current.User.Identity.Name認証されたユーザー名を取り出します.
しかし、このような方式では、認証ユーザ名がクライアントCookieに保存する、クライアントがCookieを無効にすると、認証ユーザ名サーバは復号されないという問題がある.
Forms認証には、認証されたユーザー情報をURLに保存する方法があります.CookilessをUseUriに設定するだけでいいです.
認証後のURLは次のようになります.http://localhost:27130/(F(7QOqmTvEj....EwMB0))/Default.aspx
しかし、認証ユーザ情報をURLで保存することは、クライアントブラウザがCookieを無効にしたと仮定する方法であるが、Cookieを無効にしていないクライアントブラウザがあると、そのURLが非常に煩雑になるという問題がある.
2つ目:
この方法でForms認証チケットをカスタマイズし、Cookie情報を保存することができる.
社内システムの開発に携わっているため、ログインユーザ情報をセッションに保存している.Forms認証は何も使ったことがありませんが、最近この方面のものを研究して、貼って、レンガを撮ることを歓迎します.
Froms認証:
1つ目:
string userName = "admin";
string pwd = "admin";
// :
//Web.config :
//<authentication mode="Forms">
// <forms loginUrl="~/Account/Login.aspx" defaultUrl="Default.aspx" timeout="2880" />
//</authentication>
if (userName == "admin" && pwd == "admin")
{
// , URL defaultUrl.
// URL ReturnUrl , Default.aspx?ReturnUrl=test.aspx
// URL, defaultURL
FormsAuthentication.RedirectFromLoginPage(userName, false);
}
else
{
// , loginUrl.
FormsAuthentication.RedirectToLoginPage();
}
HttpContext.Current.User.Identity.Name認証されたユーザー名を取り出します.
しかし、このような方式では、認証ユーザ名がクライアントCookieに保存する、クライアントがCookieを無効にすると、認証ユーザ名サーバは復号されないという問題がある.
Forms認証には、認証されたユーザー情報をURLに保存する方法があります.CookilessをUseUriに設定するだけでいいです.
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" defaultUrl="Default.aspx" timeout="2880" cookieless="UseUri" />
</authentication>
認証後のURLは次のようになります.http://localhost:27130/(F(7QOqmTvEj....EwMB0))/Default.aspx
しかし、認証ユーザ情報をURLで保存することは、クライアントブラウザがCookieを無効にしたと仮定する方法であるが、Cookieを無効にしていないクライアントブラウザがあると、そのURLが非常に煩雑になるという問題がある.
2つ目:
string userName = "admin";
string pwd = "admin";
if (userName == "admin" && pwd == "admin")
{
//
// Forms
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(userName, false, 300);
// Forms Cookie .
string cookieValue = FormsAuthentication.Encrypt(ticket);
// Forms
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie cookie = new HttpCookie(cookieName, cookieValue);
Response.Cookies.Add(cookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(userName, false));
}
この方法でForms認証チケットをカスタマイズし、Cookie情報を保存することができる.