我正在将现有的ASP.Net webapp转换为MVC / Entity Framework,我遇到了登录功能的问题。
我的登录页面正常工作,也就是说,如果他们没有输入正确的信息,它就不会重定向到我的起始页面。但是,如果用户手动输入URL,则仍可访问起始页。
我对MVC很新,并且之前并没有真正创建过具有工作登录的网站。有人可以指导我从哪里开始,以保护我的网站免受匿名用户的侵害吗?
答案 0 :(得分:7)
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 })]
答案 1 :(得分:2)
您是否在主页控制器上使用了[Authorize]
属性?
我猜不是。否则,用户将自动重定向到“登录”页面。