这是我的 ASP.NET 身份验证操作。
private void LoginButton_Click(Object sender,
EventArgs e)
{
string userName = txtUserName.Value;
string password = txtUserPass.Value;
if (ValidateUser(txtUserName.Value, txtUserPass.Value))
{
FormsAuthenticationTicket tkt;
string cookiestr;
HttpCookie ck;
tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,
DateTime.Now.AddMinutes(3), chkPersistCookie.Checked,
userName + "@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);
}
我的数据库中有用户表,其中保存了所有凭据。使用ValidateUser
方法我正在做凭据验证。我也有三种类型的用户:会员、版主和管理员。每种类型的成员都有独特的功能。假设我的数据库中存储了 A、B 和 C T-SQL。
我应该让:
成员只执行一个查询。
主持人执行 A 和 B。
管理员执行 A、B 和 C。
当然,我可以从 Web 应用程序管理执行,但我不确定它有多安全。从技术上讲,我可以在 App 之外执行类似的查询,从而可以访问所有数据库数据。我还想以某种方式将 Web App 登录和 Db 访问结合起来。
谢谢!