MVC 5,Identity 2.0 Android Rest / Json Api

我有一个使用Identity 2.0进行认证/授权的ASP.NET MVC 5应用程序。 现在我想通过Web Api 2.0向我的Android应用程序提供对我的Web应用程序中的数据的访问。

我的问题是:如何控制授权/认证我的Android应用程序的访问?

在Android端,我使用“org.springframework.web.client.RestTemplate”并将这个HTTP头添加到我的请求中:

    HttpAuthentication authHeader = new HttpBasicAuthentication("username", "password");
    HttpHeaders requestHeaders = new HttpHeaders();
    requestHeaders.setAuthorization(authHeader);
    HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);

我应该创建一个Filter还是一个HttpModule,分析HTTP Header并查询数据库以检查是否有现有的用户?

我很清楚它在HTML / Javascript前端的工作原理。 每次成功登录后都会有一个cookie,用于所有后续调用,但对于我的android应用程序,最佳策略是什么?

更新:找到这两个链接,但我不知道我是否应该这样:http://springinpractice.com/2012/04/08/sending-cookies-with-resttemplate http://blog.mikepearce.net / 2010/08/24 /饼干和最宁静的API /


如您所见,您可以为您的WebApi控制器创建一个过滤器,以授权和验证客户端应用程序的访问权限。 这里有一篇博文可以帮助你实现这样的事情。

但是,我建议使用Oauth标准定义的访问令牌。 这种身份验证和授权方法非常适合移动应用程序。 您可以创建使用寿命长的访问令牌,以保持您的移动客户端应用程序的登录状态,类似于长寿命Cookie和浏览器客户端。 或者你可以使用短命命令令牌和长命令刷新令牌。 也没有什么能够阻止你使用Oauth浏览器客户端,给你一个单一的认证实现。 这是对令牌和Oauth的一个很好的回答。

看一下IdentityServer,以下是来自他们的Github仓库:

IdentityServer是基于.NET / Katana的框架和宿主组件,允许使用OpenID Connect和OAuth2等协议为现代Web应用程序和API实现单点登录和访问控制。 它支持广泛的客户端,如移动,Web,SPA和桌面应用程序,并且可以扩展以允许集成到新的和现有的体系结构中。

链接地址: http://www.djcxy.com/p/47959.html

上一篇: MVC 5, Identity 2.0 Android Rest/Json Api

下一篇: What benefits refresh tokens in OAuth2