我正在使用MVC 4.
首页导航到http://localhost:61700/
,其中包含用户名和密码以继续...
现在,我也可以通过输入http://localhost:61700/AccountInfo
和其他网页来访问直接网址,而无需登录该应用。
如何限制此操作,如果用户未登录并键入直接URL,则需要转到错误页面
HomeController.cs
using System.Web.Mvc;
namespace myWebSite.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult AccountStatus()
{
return View();
}
...................
答案 0 :(得分:2)
您可以应用授权属性以限制未经授权的用户。您也可以根据需要应用角色并添加用户。
[Authorize]
public class PrivateResourcesController : ApiController
{
public IHttpActionResult Get()
{
return Ok(DateTime.Now);
}
}
[Authorize(Roles ="Admin",Users ="foo@mail.com")]
public class PrivateResourcesController : ApiController
{
public IHttpActionResult Get()
{
return Ok(DateTime.Now);
}
}
答案 1 :(得分:0)
一个简单的想法:
创建一个控制器,说Controller
继承自 if (Session["LoggedIn"] == 1) {
base.OnActionExecuting(filterContext);
} else {
filterContext.Result = RedirectToAction("Index", "Login");
}
}
并且只使用此方法
protected override void OnActionExecuting(ActionExecutingContext filterContext) {
LoginController
除SecureController
以外,继承Session["LoggedIn"]
有索引(或任何你喜欢的名字)方法登录。成功登录后将df <- data.frame(X= sample(c("Menu 1", "Menu 2"), 10, replace = TRUE), Y= sample(c("a1", "a2", "a3"), 10, replace = TRUE))
df
X Y
1 Menu 2 a2
2 Menu 1 a3
3 Menu 1 a3
4 Menu 2 a1
5 Menu 1 a1
6 Menu 2 a2
7 Menu 1 a1
8 Menu 1 a2
9 Menu 2 a2
10 Menu 2 a2
library(dplyr)
df %>% group_by(X,Y) %>% arrange(X,Y) %>% summarise(count = n())
Source: local data frame [5 x 3]
Groups: X
X Y count
1 Menu 1 a1 2
2 Menu 1 a2 1
3 Menu 1 a3 2
4 Menu 2 a1 1
5 Menu 2 a2 4
设置为1.
这就是你需要的一切。当然,这只是一个简单的发人深省的想法,让你走上正确的道路。如果用户未登录,这将允许您重定向到任何页面。不需要表单身份验证配置。这使您可以完全控制如何验证用户。