我開發的網站非常簡單,我有三個網頁。基於用戶角色的ASP.NET HTML生成
- Logon.aspx
- Register.aspx
- MyAccount.aspx
Logon.aspx代碼:
if (ValidateUser(email, password))
{
FormsAuthenticationTicket tkt;
string cookiestr;
HttpCookie ck;
tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,
DateTime.Now.AddMinutes(3), chkPersistCookie.Checked,
email + "@ticket");
cookiestr = FormsAuthentication.Encrypt(tkt);
ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
if (chkPersistCookie.Checked)
ck.Expires = tkt.Expiration;
ck.Path = FormsAuthentication.FormsCookiePath;
Response.Cookies.Add(ck);
string strRedirect;
strRedirect = Request["ReturnUrl"];
if (strRedirect == null)
strRedirect = "MyAccount.aspx";
Response.Redirect(strRedirect, true);
}
else
Response.Redirect("logon.aspx", true);
Register.aspx代碼:
private bool RegisterUser(string name, string surname, string email, string phone, string pass)
{
SqlConnection conn = new SqlConnection(@"Data Source=Server\SQL;Initial Catalog=Db;Integrated Security=True; User ID=user; Password =pass;");
conn.Open();
string insertQuery = @"INSERT INTO Users (Email, Name, Surname, Phone, Manager, Rank, Password)
VALUES (@Email, @Name, @Surname, @Phone, @Manager, @Rank, @Password)";
SqlCommand cmd = new SqlCommand(insertQuery, conn);
cmd.Parameters.Add("@Email", email);
cmd.Parameters.Add("@Name", name);
cmd.Parameters.Add("@Surname", surname);
cmd.Parameters.Add("@Phone", phone);
cmd.Parameters.Add("@Manager", "[email protected]");
cmd.Parameters.Add("@Rank", "1");
cmd.Parameters.Add("@Password", pass);
try
{
int rowsAffected = cmd.ExecuteNonQuery();
}
catch (Exception e)
{
throw;
}
finally
{
cmd.Dispose();
insertQuery = string.Empty;
}
一切都很完美。 現在,我要的是對MyAccount.aspx的Page_Load中:
- 幫助獲取Cookie
- 檢查用戶角色
- 基於用戶角色顯示所需的網站內容。
但我不知道該怎麼做。
- 我應該引用cookie來建立用戶角色嗎?
- 如何根據用戶角色生成HTML?
謝謝!
請哈希你的密碼,而不是將它們存儲! –
我之前做過哈希。謝謝! –
這是你要搜索的內容嗎? 'HttpContext.Current.User.IsInRole(「RoleName」)'?還檢查一個可能會幫助你:http://stackoverflow.com/questions/10880286/implementing-security-in-asp-net-web-app-as-afterthought/10880528#10880528 – Aristos