2

ASP.NET プロジェクト (C#) と SQL Server 2008 では、管理者をどのように決定する必要がありますか?

管理者を決定するために、Usersテーブルに属性を設定する必要がありますか? 管理者が 1 人しかいないのに?

id           username            type
--------------------------------------
1            Ali1                admin
2            James3              user
3            Carlos31            user
4            Kuku                user

また

Sessionをチェックするとき、Admin は特別なIDによって決定されるべきですか?

管理者がid=1のユーザーであるとしましょう

if(Session["id"].toString().Equals("1"))
{
    //Admin
}
else
{
    //Normal User
}

どちらのアプローチがより適切で安全ですか? より良いものはありますか?

4

2 に答える 2

3

特定の ID をチェックするのではなく、ユーザー タイプをチェックします。データが変更されるかどうか、または管理者を追加する必要があるかどうかはわかりません。一般に、このような値をアプリケーションにハード コードすることはお勧めできません。代わりに、UserType クラスを作成し、UserType.Admin または UserType.User ロールを確認して、BLL や DAL でコードを処理します。

あなたの質問に答えるために、あなたは最初の実装でうまくいくでしょう。

幸運を。

于 2013-01-16T15:11:48.123 に答える
1

次のようなスキーマを作成することをお勧めします。

http://dbpatterns.com/documents/50851b3189cbad4b9fd5b45a/

したがって、ユーザー テーブルとレベル テーブルがあります。

レベルテーブルには次のようなものがあります:

id           level
-------------------
1            admin
2            user

次に、ユーザー テーブルで各ユーザーにレベル番号を付けます。これにより、レベルを簡単に追加し、ルックアップする定義を作成できます。

または、やり過ぎたい場合は、次のようにします。

ユーザー ID とレベル ID を格納する 3 番目のテーブルを用意して、ユーザーが複数のロールを持つことができるようにします。

user_level_link テーブルには次のようなものがあります。

user_id    level
-------------------
1            1
2            1
2            2

サイトをさらに拡張する場合に問題が発生する可能性があるため、単一の ID に対しては絶対に行わないでください。

于 2013-01-16T15:16:48.183 に答える