AngularJS和Web API表单身份验证

VAAA

我是AngularJS的新手,我开始创建一个示例应用程序,此应用程序有2个视图:

  • 登录视图
  • 欢迎查看

AngularJS虚拟应用程序一切正常,但是现在我开始在服务器端实现Login功能:

[HttpPost]
        public JsonResult Login(string credentials)
        {
            bool returnVal = false;

            if (!string.IsNullOrEmpty(credentials))
            {
                FormsAuthentication.SetAuthCookie("DUMMY USER", true);
            }

            return Json(new
            {
                success = returnVal
            },
            JsonRequestBehavior.AllowGet);
        }

在欢迎控制器上,我有:

 [Authorize]
        public JsonResult GetPersons()
        {
            return Json(new
            {
                success = false
            },
             JsonRequestBehavior.AllowGet);
        }

然后,为了实现表单身份验证,我必须在Web.Config中进行设置:

<authentication mode="Forms">
      <forms loginUrl="/login" name=".ASPXFORMSAUTH" protection="All" timeout="1" slidingExpiration="true" />-->
    </authentication>

问题是这样做时,它将重定向URL,因此出现以下错误:

GET http://localhost:21871/login?ReturnUrl=%2fperson%2fGetPersons 404 (Not Found) 

而且由于AngularJS无法理解该路线,所以我无法继续前进。

关于如何解决此问题的任何线索,或者也许有更好的方法可以解决。

谢谢

帮助

您可以使用所需的任何身份验证/授权机制。但是,当您调用$http.get()$http.post()希望收到JSON对象时。但是,如果未通过身份验证,您将被重定向到HTML页面的登录页面。因此,检查成功的代码将失败。

您需要创建一个新的自定义授权过滤器(例如MyAuthorize),以通过任何可用的技术(SimpleMembership,OAuth等)对用户进行身份验证/授权,如果身份验证失败,则RedirectResult返回带有Error标志的JSON对象,而不是返回然后,您可以在$http.get()之后检查该标志$http.post(),并从客户端重定向用户。我们始终开发自己的通信服务,该服务会致电$http.get()$http.post始终在那进行检查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

OWIN和带有SPA的WEB API 2的表单身份验证

具有表单身份验证和角色的Web API

(Monaca、Cordova)带有表单身份验证 (Cookie) 的 Web API 请求不起作用

表单身份验证和Active Directory

HTML到PDF和表单身份验证

在令牌过期的情况下,表单身份验证和OAuth for Web API项目的混合不会返回401

Sitecore 与 iis 表单身份验证和编码基本身份验证

带有表单身份验证的ASP .NET Web表单的MFA提供程序

同时使用表单身份验证和基本身份验证来保护单个操作

Windows Phone 8开发和WebAPI-通过表单身份验证进行身份验证吗?

IIS 7.5和使匿名身份验证/表单身份验证可以很好地协同工作

具有表单身份验证的ASP.NET MVC和具有基本身份验证的WebApi

在没有Web.Config的情况下配置表单身份验证

如何在Silverlight Web应用程序中进行表单身份验证?

表单身份验证与OWIN UseCookieAuthentication和子域SSO

基于列表的角色进行表单身份验证和隐藏菜单项

在MVC3 Web应用程序中将表单身份验证更改为Windows身份验证需要什么步骤?

在.NET 4.5中混合使用Windows和Forms身份验证:在创建表单身份验证票证之前,如何保持Request.IsAuthenticated = false?

如何使用登录(用户/密码)文本框在同一页面上登录ADFS WIF联合身份验证和表单身份验证?

如何在angularjs Web API SPA中使用现有的基于Web表单的身份验证和授权?

AngularJS简单身份验证拦截器

.net IIS表单身份验证始终拒绝访问,即使使用正确配置的web.config

ASP.NET web.config表单身份验证,拒绝匿名用户,允许匿名访问单个文件

asp.net和asp.net MVC之间的表单身份验证有区别吗?

Go和JWT-简单身份验证

是否可以在没有 web.sitemap 的情况下进行基于 ASP.NET 角色的表单身份验证和授权?

Web API身份验证

ASP.Net表单身份验证和IIS对Google应用iPhone请求中的受保护页面抛出404错误,但公共页面正确显示

ASP.NET MVC + Web API2 + AngularJS授权和身份验证