2016-06-28 5 views
0

私のControllerに以下のコードがあります。
Authorizeは、このリストに記載されていないユーザーをDeleteの行動から正しく保護しています。同じ名前でActionNameを使用する2つのアクションがある場合、両方でAuthorizeを使用する必要がありますか?

DeleteConfirmedアクションで同じ操作を行う必要がありますか、ActionName("Delete")を使用しているため、既に保護されていますか?

// GET: Conversions/Delete/5 
[Authorize(Users = "Mydomain\\MyUserName")] 
public ActionResult Delete(int? id) 
    { 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 
     Conversion conversion = db.Conversions.Find(id); 
     if (conversion == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(conversion); 
    } 

// POST: Conversions/Delete/5 
[HttpPost, ActionName("Delete")] 
[ValidateAntiForgeryToken] 
public ActionResult DeleteConfirmed(int id) 
    { 
     Conversion conversion = db.Conversions.Find(id); 
     db.Conversions.Remove(conversion); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

答えて

1

保護された必要があるそれぞれの処置[Authorize]。同じアクション名を持っているかどうかは関係ありません。ただし、実際にアクションごとに属性アクションを配置する必要はありません。代わりにコントローラーに置くことができ、内部のすべてのアクションも保護されます。保護したくない特定の操作がある場合は、[AllowAnonymous]を追加できます。

関連する問題