所以这就是问题所在。我的asp.net mvc网站上有一个管理部分,它使用单页面应用程序来编辑数据库中的表格。现在没有什么可以防止有人进入管理部分并看到那些单页应用程序。他们将无法做任何事情,因为Web API在后端是安全的。我正在考虑保护这些管理页面单页应用程序的最佳方法。
Web API使用新的ASP.NET身份功能来实现安全性,这非常简单。我也可以在mvc网站上使用ASP.NET Identity。当有人请求单个页面应用程序的其中一个视图时,它们将被重定向到登录页面。这将为我留下一个网页,它是单页应用程序与传统mvc网站的混合,用于单独的页面安全性。可以做或者有更好的解决方案吗?
答案 0 :(得分:1)
只要您使用一致的授权方法,您肯定希望单独保护控制器和Web API方法。只要您保持一致,“混合”就可以了,例如基于属性的授权检查。
如果您只有几个角色可以使用,则可以使用标准的Authorize属性:
[Authorize( Roles = Constants.ADMIN )]
如果您有更复杂的事情,请考虑自定义授权属性:
public class AuthorizeUserAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//something more complex here
}
}