5

我正在将现有的 ASP.Net webapp 转换为 MVC / Entity Framework,但登录功能存在问题。

我的登录页面正常工作,也就是说,如果他们没有输入正确的信息,它不会重定向到我的起始页面。但是,如果用户手动输入 URL,则仍然可以访问起始页。

我对 MVC 还很陌生,实际上之前还没有创建过一个可以正常登录的网站。有人可以指导我从哪里开始以保护我的网站免受匿名用户的侵害吗?

4

2 回答 2

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 })]
于 2013-06-14T15:40:17.237 回答
2

您是否[Authorize]在主页控制器上使用过该属性?

我猜不是。否则,用户将被自动重定向到登录页面。

于 2013-06-14T15:40:30.827 回答