シンプルなASP.NET MVC 3アプリケーションがあります。アプリケーション用に設計したデータベースがあります(App.Domainアセンブリ内のドメインモデルに相当)。 アプリケーションサービスメンバーシップテーブルを自動生成し、アプリケーションデータベースに追加しました。メンバーシップの作成はうまくいきます。 私はUserId(自動生成されたaspnet_Usersテーブルから)とContentId(アプリケーションの内容を保持するContentテーブルから)で構成された複合PKを持つ 'Permission'テーブルを作成しました。 考えられるのは、ユーザーが自分が作成したコンテンツに対して他のユーザーに権限を割り当てることができるようにすることです。 私の計画は、次のようなコントローラにロジックを配置することです: Collapse |コードのコピーASP.NETメンバーシップをユーザー定義のアクセス許可に使用する方法
Guid currentUser = (Guid)Membership.GetUser().ProviderUserKey;
int[] accessible = (from p in context.Permissions
where p.UserId == currentUser
select p.ContentId).toArray();
次に、現在のユーザ、このような何かのためのコンテンツを取得する: 折りたたみます|コードのコピー
IEnumerable<content> content = context.Content
.Where(x => x.PublicAccess < 3
|| accessible.Contains(x.ContentId));</content>
私は何の意味もなされている場合、これはユーザー定義された権限を処理するための通常の方法であれば、誰も私を伝えることができます。 また、linqをint []にキャストしないため、このコードは機能しません。それを助けてくれる?
「ユーザー定義の」アクセス許可とはどういう意味ですか? 「ユーザー定義」とは、通常、ユーザー自身が定義したものであり、通常は管理者が管理する「アクセス許可」という語には意味がありません。 –
私は、ユーザーが他のユーザーのアクセス許可を定義できることを意味します。したがって、どのユーザーもコンテンツ表に入っているコンテンツを作成し、アクセス権を与えたい他のユーザーに権限を発行することができます。 – david004
@ミステリーマン - ありがとう。コードは現在動作しています。私はあなたの答えを投票するだろうが、私は十分なステータスポイントを持っていない。ごめんなさい。 – david004