2017-06-22 10 views
0

AspNetUserと1対1の関係を持つUserProfileモデルがあります。ASP.NET MVC - ユーザーが自分のデータのみを変更できるようにする

のUserProfile:

public class UserProfile 
{ 
    public int Id { get; set; } 

    public virtual ApplicationUser ApplicationUser { get; set; } 

    [Required] 
    [Display(Name = "Full Name")] 
    public string FullName { get; set; } 
} 

どのように変更されているのUserProfileはユーザーがデータを所有していることを確認しますか。 編集用にPOSTメソッドとGETメソッドに[Authorize]属性を設定しましたが、ユーザーが自分のデータを編集していることを確認する必要があります。

他の属性を使用してこれを行うことができるので、私のメソッドでコードを繰り返す必要はありません。どうすればコード化できますか?

答えて

4

一般的にはAutorizeという属性を使用しています。

操作入力に応じて合法であることを確認するために、最も簡単な方法は、現在のユーザが編集が実行されたユーザと等しいか否かの方法コントローラ(のActionResult関数)で確認することです

[HttpPost] 
public ActionResult Edit(UserProfile model) 
{ 
    if(User.Identity.GetUserId() != model.ApplicationUser.Id) 
     return new HttpUnauthorizedResult(); 

    ... 
} 
関連する問題