我正在将现有的 ASP.Net webapp 转换为 MVC / Entity Framework,但登录功能存在问题。
我的登录页面正常工作,也就是说,如果他们没有输入正确的信息,它不会重定向到我的起始页面。但是,如果用户手动输入 URL,则仍然可以访问起始页。
我对 MVC 还很陌生,实际上之前还没有创建过一个可以正常登录的网站。有人可以指导我从哪里开始以保护我的网站免受匿名用户的侵害吗?
我正在将现有的 ASP.Net webapp 转换为 MVC / Entity Framework,但登录功能存在问题。
我的登录页面正常工作,也就是说,如果他们没有输入正确的信息,它不会重定向到我的起始页面。但是,如果用户手动输入 URL,则仍然可以访问起始页。
我对 MVC 还很陌生,实际上之前还没有创建过一个可以正常登录的网站。有人可以指导我从哪里开始以保护我的网站免受匿名用户的侵害吗?
ASP.NET MVC 有一个简单的属性Authorize
,你可以用它来装饰你的控制器:
[Authorize]
public class YourController {
}
这将要求用户通过身份验证才能在控制器上执行任何操作。
如果您需要在整个控制器中进行不同的身份验证,您还可以在操作级别指定此项:
public class YourController {
public ActionResult OpenToTheWorld() {
}
[Authorize]
public ActionResult GottaLogIn() {
}
}
最后一点......如果像我一样,您只需要允许某些组访问控制器和操作,您也可以使用该Authorize
属性来执行此操作:
[Authorize(Roles = "Administrators, Editor")]
我个人不喜欢这样硬编码的字符串,所以我推出了自己的属性,它接受正确的对象:
[MyAuthorize(Roles = new string[] { SiteRoles.Administrator, SiteRoles.Editor })]
您是否[Authorize]
在主页控制器上使用过该属性?
我猜不是。否则,用户将被自动重定向到登录页面。