0

这是我的 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 访问结合起来。

谢谢!

4

2 回答 2

1

如果这些查询将来自 Web 应用程序,我认为您需要管理调用过程的代码端。您可以在数据库中维护一个 url 列表,分配角色,并让这些角色访问特定的 url . 这些 url 将决定用户可以执行哪些查询......

然后在您的代码中,您可以分配自定义属性以限制对它们的访问......

于 2012-06-04T16:57:36.473 回答
1

http://msdn.microsoft.com/en-us/library/ff647396.aspx

于 2012-06-04T17:22:31.467 回答