我正在一个应用程序中工作,我需要验证该请求来自经过身份验证的用户。因为我根据用户Guid做了很多负载。
实施例
public ActionResult ManageEmployee()
{
var loadedEmp = GetLoadedEmp(GetLoggedUserGuid());
return View("Employee/Manage", loadedEmp);
}
我的问题是,我是否需要执行此操作“已验证用户已通过身份验证”
public ActionResult ManageEmployee()
{
if (!User.Identity.IsAuthenticated)
{
return View("Account/LogOn");
}
var loadedEmp = GetLoadedEmp(GetLoggedUserGuid());
return View("Employee/Manage", loadedEmp);
}
在每个ActionResult函数上,或者有野兽方法或集中解决方案。
由于
答案 0 :(得分:11)
使用控制器中Action的AuthorizeAttribute
要求用户登录以执行所述操作:
[Authorize]
public ActionResult ManageEmployee()
{
// This code will only execute if the user is Authenticated
var loadedEmp = GetLoadedEmp(GetLoggedUserGuid());
return View("Employee/Manage", loadedEmp);
}
使用该属性时,如果用户未登录,用户将自动重定向到登录页面(只要您的应用程序配置正确)。
答案 1 :(得分:6)
@Justin Niessner是对的,但如果你想要一个属性应用于控制器中的每个动作,你可以将AuthorizeAttribute放在类上:
[Authorize]
public class HomeController : AreaController { ... }
答案 2 :(得分:0)
我认为您还可以使用此属性来锁定特定角色和用户 - 如果您使用角色提供程序功能。