我正在ASP.NET MVC的Web項目。每個控制器調用服務來執行一些操作。讓我們的例子什麼是數據庫服務的良好做法C#
public interface IProjectService
{
bool ActivateProject(int projectId);
//others
}
一看,實現類
public class ProjectService : IProjectService
{
private readonly IContextProvider _contextProvider;
public ProjectService(IContextProvider contextProvider)
{
_contextProvider = contextProvider;
}
public bool ActivateProject(int projectId)
{
using (var context = _contextProvider.GetContext())
{
var project = context.Projects.Where(p => p.ProjectId == projectId).SingleOrDefault();
project.Status = 1;
context.SaveChanges();
return true;
}
}
//others
}
在管理員希望激活項目的例子。我在jQuery中進行了驗證,因此admin不能通過projectId以外的其他任何東西。
那麼現在該返回什麼方法呢? 我應該把它作爲無效嗎? 可以說數據庫有錯誤,所以我應該拋出異常?這種操作有什麼做法?
_「我有驗證jQuery」_ - 這不是你如何保護Web服務。 – CodeCaster
你是什麼意思?我的意思是方法的參數總是OK – miechooy
你永遠不能相信用戶的輸入。僅僅因爲你從jQuery傳遞值並不意味着有人繞過jquery並直接發送數據給你。驗證服務器端,100%的時間。 – Phill