0

私は非常にシンプルなウェブサイトを開発しました。私は3つのウェブページしか持っていません。

  1. Logon.aspx
  2. Register.aspx
  3. MyAccount.aspx

Logon.aspxコード:

        if (ValidateUser(email, password))
        {
            FormsAuthenticationTicket tkt;
            string cookiestr;
            HttpCookie ck;
            tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,
                                                DateTime.Now.AddMinutes(3), chkPersistCookie.Checked,
                                                email + "@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);

Register.aspxコード:

    private bool RegisterUser(string name, string surname, string email, string phone, string pass)
    {
        SqlConnection conn = new SqlConnection(@"Data Source=Server\SQL;Initial Catalog=Db;Integrated Security=True; User ID=user; Password =pass;");
        conn.Open();
        string insertQuery = @"INSERT INTO Users (Email, Name, Surname, Phone, Manager, Rank, Password)
                                VALUES (@Email, @Name, @Surname, @Phone, @Manager, @Rank, @Password)";
        SqlCommand cmd = new SqlCommand(insertQuery, conn);

        cmd.Parameters.Add("@Email", email);
        cmd.Parameters.Add("@Name", name);
        cmd.Parameters.Add("@Surname", surname);
        cmd.Parameters.Add("@Phone", phone);
        cmd.Parameters.Add("@Manager", "Test@Test.com");
        cmd.Parameters.Add("@Rank", "1");
        cmd.Parameters.Add("@Password", pass);

        try
        {
            int rowsAffected = cmd.ExecuteNonQuery();
        }
        catch (Exception e )
        {

            throw;
        }
        finally
        {
            cmd.Dispose();
            insertQuery = string.Empty;
        }

すべてが完璧です。今私が欲しいのはMyAccount.aspxのPage_Loadにあります:

  1. クッキーを取得する
  2. ユーザーの役割を確認する
  3. ユーザーの役割に基づいて、必要なWebサイトのコンテンツを表示します。

しかし、私はそれを行う方法がわかりません。

  1. ユーザーロールを確立するためにCookieを参照する必要がありますか?
  2. ユーザーの役割に基づいてHTMLを生成するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

サイト内のコンテンツに特定の役割、つまり異なるページやコントロールにのみアクセスできるようにするなど、役割に基づいて多くのHTMLを生成することは望まないと思います。このcodeprojectページはあなたが必要とすることをやっています。

于 2012-06-10T23:20:09.783 に答える