我的项目的页面带有[Authorize]
,用户必须登录才能访问这些页面。
使用与数据库中相同的用户名和密码成功登录后,当前用户ID将存储在会话中。但是,如何验证/允许用户使用[授权]访问页面?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Login(User u)
{
if (ModelState.IsValid) //this is check validity
{
using (UserEntities db = new UserEntities())
{
var v = db.Users.Where(a=>a.UserName.Equals(u.UserName) && a.Password.Equals(u.Password)).FirstOrDefault();
if (v != null)
{
Session["LoggedUserID"] = u.Id.ToString();
Session["UserFullname"] = u.Name.ToString();
return RedirectToAction("AfterLogin");
}
}
}
return View(u);
}
任何帮助都非常感谢。谢谢。
参考方案
如果您绝对想使用Session自己管理登录名和安全性,则可以创建自己的操作过滤器,以检查session是否设置了用户ID。
像这样
public class AuthorizeWithSession : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (context.HttpContext.Session == null ||
context.HttpContext.Session["LoggedUserID"]==null)
{
context.Result =
new RedirectToRouteResult(new RouteValueDictionary(
new {controller = "Account", action = "Login"}));
}
base.OnActionExecuting(context);
}
}
现在,在您的安全操作/控制器上装饰此操作过滤器
[AuthorizeWithSession]
public class TeamController : Controller
{
}
Spring MVC:如何获取请求的处理程序方法 - java我正在尝试根据Spring @RequestMapping注释方法上存在的注释实现一些逻辑。因此,我的方法中有一个HttpServletRequest实例,我想问一下spring“给我一个方法,该方法将被调用以处理此请求”,因此我可以使用反射API来询问是否存在我的注释,因此我可以更改处理。有什么简单的方法可以从Spring MVC获取此信息? java大神…
在Asp.Net MVC Razor中将HTML视图作为电子邮件附件发送 - javascript我目前在Razor ASP.Net MVC工作。在这里,我有一个HTML view,名为“客户付款”,它是根据某些计算在RAZOR中生成的,并显示在HTML dialog中。我想将此Html View作为电子邮件附件发送。但是在这里,我感到困惑,我不得不将这个HTML View转移到.PDF or .jpg中的某些jQuery中,然后将其发送到Control…
调试捆绑和版本化的javascript文件 - javascript我已经使用Bundleconfig.cs将我的JavaScript文件打包如下:bundles.Add(new ScriptBundle("~/bundles/resultscripts").Include( "~/Scripts/spectrum.js", "~/Scripts/notify.js"…
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
在扩展控制器中更改ViewData的类型 - c#我创建了自己的CustomController基类,该基类继承自Controller。同样,我创建了自己的CustomViewData,它继承自ViewDataDictionary。CustomController类具有一个接受CustomViewData作为参数的ctor。我所有的控制器都继承自CustomController并传递其继承的CustomVi…