【发布时间】:2017-02-01 19:52:12
【问题描述】:
假设,我有一个包含用户名/密码的 SQL Server 数据库。在我的“登录”视图中,我希望在用户名/密码文本字段中输入数据,当我单击“登录”时,我想使用我的登录控制器将这些值与数据库中的值进行比较。所有这些都相当简单:
但是,我想在我的站点控制器的其余部分上使用 [Authorize] 属性。在通过登录页面授予访问权限后,我似乎找不到任何解释如何“授权”用户以便["Authorize"] 属性识别该用户并允许他们访问其他控制器/操作的示例。这是我开始设置它的方法,但我找不到任何从这里开始的方向。
public class LoginController : Controller
{
// GET: /<controller>/
//[Route("/Login")]
public ActionResult Index()
{
return View();
}
public bool Login(Workflow.Models.WorkflowContext wfc, string username, string password)
{
var user = wfc.User.Where(u => u.Active && u.Username == username && u.Password == password).ToList();
if (user.Count > 0)
{
//User may log in
return true;
}
else
//Access Denied
return false;
}
}
例如,在没有用户授权的情况下,我不希望他们能够访问我的“家庭控制器”:
[Authorize]
public class HomeController : Controller
{
[Route("/Home")]
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
public ActionResult Error()
{
return View();
}
}
我听说过“Identity”和“SignInManager”类,我对如何使用这两个选项感到有点不知所措。我对 ASP .Net MVC 还有些陌生,所以我试图了解授权的工作原理。谢谢。
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-identity