Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api 了解VS2013 MVC5 SPA模板WebAPI安全特性_Asp.net Web Api_Oauth_Asp.net Identity - Fatal编程技术网

Asp.net web api 了解VS2013 MVC5 SPA模板WebAPI安全特性

Asp.net web api 了解VS2013 MVC5 SPA模板WebAPI安全特性,asp.net-web-api,oauth,asp.net-identity,Asp.net Web Api,Oauth,Asp.net Identity,我试图了解VS2013 MVC5 SPA模板WebAPI的安全特性 在Startup.Auth.cs中有- TokenEndpointPath = new PathString("/Token") 还有这个- AuthorizeEndpointPath = new PathString("/Account/Authorize") 据我所知,AuthorizeEndPointPath适用于充当第三方OAuth授权服务器的情况 不管它如何在模板中使用,流似乎是 通过表单身份验证登录 重定向到安全

我试图了解VS2013 MVC5 SPA模板WebAPI的安全特性

在Startup.Auth.cs中有-

TokenEndpointPath = new PathString("/Token")
还有这个-

AuthorizeEndpointPath = new PathString("/Account/Authorize")
据我所知,AuthorizeEndPointPath适用于充当第三方OAuth授权服务器的情况

不管它如何在模板中使用,流似乎是

  • 通过表单身份验证登录
  • 重定向到安全页面
  • Javascript检查本地存储中的承载令牌,但该令牌不存在,因此会重定向到此授权端点

    window.location=“/Account/Authorize?client_id=web&response_type=token&state=“+encodeURIComponent(window.location.hash)

  • 使用OAuth安全性登录应用程序,返回令牌,该令牌将在后续API请求中传递

  • 似乎从未使用过/Token端点。此模板的早期版本使用ajax post-to/Token登录。我有一个类似的情况,即网站通过表单身份验证/cookies进行安全保护,但WebApi通过承载令牌进行安全保护


    授权端点是否在此SPA模板中正确使用-这是正确的模式吗?似乎应用程序“内部”验证承载令牌安全性的合适方法是“客户端凭据授予”,但不确定如何生成“机密”

    你能弄明白吗?我遇到了同样的问题,我无法通过Web API进行身份验证。这已经有一段时间了。我相信这个例子就是使用Oauth提供者进行Oauth身份验证,就像您使用google进行身份验证一样,但它恰好是(本地)站点—您通过Forms Auth登录的同一站点。归根结底,Forms Auth用于MVC Auth,您需要为WebAPI Auth获取一个承载令牌。令牌可以按照问题中的概述进行,也可以通过/token端点进行。如果是同一个安全后端(凭据数据库),我发现只需发布到/Token端点并获取API的令牌并将其存储在本地存储中就更容易了。如果我尝试并点击/Token端点,我会收到{“error”:“invalid_client”}。我肯定遗漏了什么。我打赌您有一个Startup.Auth.cs文件,您可以创建一些OAuthServerOptions。其中一个选项是提供者。在我的场景中,Provider是我编写的一个类,它继承自OAuthAuthorizationServerProvider,并重写GrantResourceOwnerCredentials和ValidateClientAuthentication。我敢打赌这就是错误的来源,不管怎样,调试这些重写的方法并了解机制对您都会有帮助。下面是一个我刚刚在谷歌上搜索到的简单示例: