0

複数のユーザーを処理するEntity Framewok を使用して、asp.net mvc 4 (および simplemembership) Web サイトを開発する予定です。ユーザーは、Facebook のプロフィール ページのように、投稿または編集できるページを持っています。また、Facebook のように、他のユーザーもこのページを表示および投稿できるようにする必要がありますが、これらの投稿を編集することはできません。

私は今、それをどのように行うかについての情報を1時間探していますが、何も見つかりませんでした. 私はasp.netが初めてで、すべての手段を知りません。ロールはこの種のアクションを処理していないようです。私のコントローラーで、投稿を作成するときに、ログインしているユーザーが所有者であると言うようなことを行う方法はありますか? しかし、それでも、各ユーザーが自分のプロフィールのページを持っているための方法がわかりません。

私はすべてのアドバイス、チュートまたは記事へのリンク、反省、アイデアを受け入れます...(私の下手な英語でごめんなさい)ありがとう

4

1 に答える 1

0

次のような simplemembership を使用して、現在ログインしているユーザーを検索できます。

User.Identity.Name

現在のユーザーを取得するには、次のようにリポジトリをクエリできます。

var currentUser = db.UserProfiles.Where(u => u.UserName.Equals(User.Identity.Name)).Single();

EDIT2:フィールドを私のモデルからあなたのモデルに変更するのを逃しました、修正しました

あなたのコメントに基づいて、MVC4 で標準の Scaffolded CRUD 削除メソッドを使用して小さな例を作成しようとします。これは、Post モデルに UserId プロパティ/フィールドがあることを前提としています。

 [HttpPost, ActionName("Delete")]
 public ActionResult DeleteConfirmed(int id) 
 {
     var currentUser = db.UserProfiles.Where(u => u.UserName.Equals(User.Identity.Name)).Single();
     Post post = db.Posts.Find(id);      
     if (post.UserId==currentUser.UserId)
     {
        {
          db.Posts.Remove(post);
          db.SaveChanges();
          return RedirectToAction("Index");
        }  
     }    
  }
于 2012-12-17T20:43:05.390 に答える