【发布时间】:2015-04-22 12:58:59
【问题描述】:
[HttpPost]
public ActionResult Login(UserVM userVM)
{
if (ModelState.IsValid || userVM.CheckWindowsAuth)
{
_userLF.UserName = userVM.UserName;
_userLF.Password = userVM.Password;
if (_userLF.AuthenticateUser(_userLF, userVM.CheckWindowsAuth))
{
}
上面的行使用我的用户名和密码进行身份验证,并返回真或假。
我已将 Authorize 属性添加到所有其他控制器,如下所示:
[Authorize]
public class ClaimsController : Controller
{}
当我的登录方法中的以下行通过返回 true 确认用户已成功通过身份验证时,我希望 [Authorize] 在其他控制器中被覆盖。
if (_userLF.AuthenticateUser(_userLF, userVM.CheckWindowsAuth))
{
}
例如下面的控制器,即使用户验证返回true,但是因为我已经给Home控制器赋予了Authorize属性,所以控件并没有进入Home控制器。我希望 Authorize 属性知道用户已经通过身份验证,并让请求成功映射到我在此控制器中的操作(以便我可以打开主页):
[Authorize]
public class ClaimsController : Controller
{
}
【问题讨论】:
-
问题是什么?
-
即使用户身份验证返回 true,但是因为我已将 Authorize 属性赋予 Home 控制器,所以控件不会进入 Home Controller...我希望 Authorize 属性知道用户是真实的并让控制在里面,所以我可以打开主页...
-
我是否正确理解了您的问题?我根据我的理解添加了一个答案,看看是否有帮助。