簡體   English   中英

ASP.NET模擬設計

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM