[英]ASP.NET Impersonation design
這是我的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);
}
我的數據庫中有User表,其中保存了所有憑據。 使用ValidateUser
方法我正在進行憑據驗證。 我還有三種類型的用戶:會員,主持人和管理員。 每種類型的成員都具有獨特的功能。 假設我在我的數據庫中存儲了A,B和C T-SQL。
我該怎么做才能:
成員僅執行查詢。
主持人執行A和B.
管理員執行A,B和C.
當然,我可以從Web應用程序管理執行,但我不確定它是多么安全。 從技術上講,我可以在App之外執行類似的查詢,它可以訪問所有數據庫數據。 我想以某種方式結合Web App登錄和Db訪問。
謝謝!
如果這些查詢將來自Web應用程序,我認為您需要管理調用過程的代碼端..您可以在數據庫中維護URL列表,分配角色,並賦予這些角色訪問特定URL的權限。 這些網址將決定用戶可以執行哪些查詢...
然后在您的代碼中,您可以分配自定義屬性來限制對它們的訪問....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.