Asp.net mvc 使用控制器的单页应用程序-如何使用ASP.NET身份进行安全保护?
我有一个单页应用程序,它使用一个标准控制器(不是ApiController)来检索所有HTML视图,这是通过ajax完成的。但是,WebApi使用breezejs供客户端与后端数据库通信。我正在实现ASP.NET身份安全-我应该使用MVC cookie身份验证还是承载令牌?我需要解决方案来说明一个单独的登录页面,并需要一个干净的服务器端重定向。免责声明 这是一个相对简单的问题,因为它非常具体,通过理解Web API和MVC控制器之间的身份验证差异,这应该是相当直接的 假设Asp.net mvc 使用控制器的单页应用程序-如何使用ASP.NET身份进行安全保护?,asp.net-mvc,breeze,single-page-application,asp.net-identity,Asp.net Mvc,Breeze,Single Page Application,Asp.net Identity,我有一个单页应用程序,它使用一个标准控制器(不是ApiController)来检索所有HTML视图,这是通过ajax完成的。但是,WebApi使用breezejs供客户端与后端数据库通信。我正在实现ASP.NET身份安全-我应该使用MVC cookie身份验证还是承载令牌?我需要解决方案来说明一个单独的登录页面,并需要一个干净的服务器端重定向。免责声明 这是一个相对简单的问题,因为它非常具体,通过理解Web API和MVC控制器之间的身份验证差异,这应该是相当直接的 假设 您的Web API项目
var query = breeze.EntityQuery.from('myService').withParameters({'tokenId': thisTokenId});
现在,您的查询将使用一个tokenId参数命中API,该参数可用于身份验证
编辑
如果您想将ASP.NET MVC项目设置为使用OAuth,您可以跟随此链接-
记住,基于表单的身份验证只意味着(简而言之)您将为用户提供某种形式的表单登录方式。如果您的WebAPI正在处理安全问题,那么您使用MVC控制器试图实现什么?您想保护视图不被打开?是的,我想保护站点(视图),和web api。您是如何登录的?个人用户帐户使用ASP.NET身份数据库,但将来将针对Yahoo、Facebook等进行身份验证。好的,我添加了一个我认为应该对您有帮助的答案。如果它不能直接解决您的问题,请让我知道。我还更新了您的问题,将Breeze.js标记包含在cas中e任何其他人将来都在寻找类似的答案。当你说在配置中设置登录页面时,你是在说什么?因为我认为我不需要表单身份验证。新的MVC身份示例是这样做的:app.UseCookieAuthentication(新的CookieAuthenticationOptions{AuthenticationType=DefaultAuthenticationTypes.ApplicationOkie,LoginPath=new PathString(“/Account/Login”)});SPA示例使用了不同形式的安全性—app.UseCookieAuthentication(new CookieAuthenticationOptions());app.useExternalSigningOkie(DefaultAuthenticationTypes.ExternalCookie);app.UseAuthBealerTokens(OAuthOptions);因此,我想在这两种情况下我都需要使用OAuthBealerTokens进行身份验证。我想你的建议仍然是正确的,我只需要了解登录页面重定向以及web api端(breeze)是如何实现的will authentication Corrective在答案底部添加了一个编辑-forms authentication只意味着你提供了一个表单供用户登录,在这种情况下可能是一个允许匿名用户点击的页面。PW我可能需要一些澄清-我不理解将令牌ID传递给breezejs。breeze做了什么如何使用令牌?我也不清楚“向Web API请求打开登录方法。这将进行一些逻辑测试,然后使用某种会话令牌将用户存储在DB中,或者自动将用户写入DB。”那么,你是说要有一些后端breeze代码来检查每个breeze呼叫上的令牌吗?不只是对两者使用承载令牌身份验证就可以做同样的事情而不必这样做吗?