0
我有一个.NET MVC5网站,用户使用Microsoft Identity登录。我有多个表单文章用于在网站中添加和编辑项目。我期待知道为了我应该在执行验证: -我应该先检查身份验证还是ModelState.IsValid
- ModelState.IsValid然后User.Identity.IsAuthenticated
- User.Identity.IsAuthenticated然后ModelState.IsValid
我目前有以下代码作品,但它似乎是“鸡和蛋”的情况: -
var user = UserAccountFunctions.GetUser(User);
if (user != null)
{
ClientProfile profile = ClientProfile.GetUser(user.Id, db);
if (profile != null)
{
if (ModelState.IsValid)
{
// Do logic here
}
}
}
我应该换轮这段代码首先检查模型,CH前ecking认证,以便我有: -
if (ModelState.IsValid)
{
var user = UserAccountFunctions.GetUser(User);
if (user != null)
{
ClientProfile profile = ClientProfile.GetUser(user.Id, db);
if (profile != null)
{
// Do logic here...
}
}
}
或者这里没有区别吗?我在整个网站上重复了这段代码,因此寻找哪个更好的选择?我目前使用的是第一个,因为我觉得除非通过验证,否则你甚至不应该试图检查模型?
此处有任何建议吗?
谢谢!
认证首先,你做到这一点通过添加'[授权]'属性的方法(或控制器) –
使用授权属性,像斯蒂芬说。验证发生在授权之后,因为您不希望授权用户查看模型是否无效 – lordkain
[Authorize]与if(User.Identity.IsAuthenticated)的用法相同吗?如果是这样的话! –