データベース設計に従ってデータベースを作成するために、Linq to SQL を使用して Sharepoint Provider でホストされるアプリをコーディングしています。アプリの認証と承認を実装する必要があります。ユーザーの認証/承認方法には、いくつかのロジックが関係しています。
ユーザーが SharePoint でアプリをクリックすると:
- ユーザーの電子メール アドレスは、SharePoint コンテキストから読み取られます。
- アプリは、ユーザーのメール アドレスが
Accountsテーブル (カスタム データベース) にあるかどうかを調べます。 - アプリは、ユーザーがテーブルで見つかった場合、アカウント
Accountsテーブルでどのロールを持っているかを判断します。 Viewユーザーに応じてレンダリングRole- ユーザーがテーブルに見つからなかった場合
Accounts、ログイン ページにリダイレクトする代わりにエラー メッセージを表示します。
注: ユーザーが SharePoint からアクセスした場合、ログイン ページは表示されません。
ユーザーがログイン ページの URL を直接呼び出した場合:
- ログインページを表示
- ユーザーが資格情報を入力します (パスワード付きの SharePoint からの電子メール)
- アプリは、テーブルをチェックして、これらの資格情報が有効かどうかを確認し
Accountsます。 - 資格情報が有効な場合は、Role from
Accountsテーブルも確認してください。 Viewユーザーの役割に応じてレンダリングします。
これはAccountsテーブルです:
**Accounts**
------------
UserName (string, SharePoint E-Mail)
Password
Role (string, value from struct)
これは私のカスタムRoles構造体です:
public struct Roles
{
public struct UserRoles
{
public const string NormalUser= "NormalUser";
public const string PrivilegedUser = "PrivilegedUser ";
}
public struct AdminRoles
{
public const string SuperAdmin = "SuperAdmin ";
public const string ProjectsAdmin = "ProjectsAdmin ";
public const string UsersAdmin = "UsersAdmin ";
}
}
基本的に、これは私が取り組まなければならないものです。いろいろな可能性があるので、少し戸惑います。ロールをカスタム データベースに保持したくないので、RoleProvider.