这是我的ASP.NET身份验证操作。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应用程序的执行,但我不知道它是多么安全。从技术上讲,我可以在应用程序之外执行类似的查询,从而可以访问所有数据库数据。我想以某种方式将Web App登录和Db访问结合起来。
谢谢!
谢谢您的回答。我可以从Web应用程序管理它们,但我不确定它有多安全。从技术上讲,我可以在应用程序之外执行类似的查询,从而访问所有数据。我想以某种方式将Web App登录和Db访问结合起来。 –
通常,您有一个与数据库进行交互的Web应用程序,并且使用一个通常为高级用户的用户,能够执行Web应用程序需要执行的所有必需查询,而不管Web用户上下文如何。然后,Web应用程序管理一个身份验证提供程序,该身份验证提供程序将根据业务需求限制用户对数据库的执行查询... – M4V3R1CK
我知道一种常用于基于Intranet的站点的技术,即使用集成安全性。这是用户使用Windows登录凭据登录网站的地方。然后,任何命中数据库的查询都将显示为特定的窗口标识,并且安全性和权限将持续存在。 – M4V3R1CK