[转载]Asp.Net MVC 4 Web API 中的安全认证(一)

[转载]Asp.Net MVC 4 Web API 中的安全认证(一) – Nic Pei – 博客园.

ASP.NET MVC4中的Web API提供了很好的API接口开发方式。可以更好地适应现在的跨平台移动开发。相信大家很多的项目现在都在使用Web Service作为提供数据的接口。好吧,那么Web API将是用来革Web Service的命。哈哈。 当然了,WCF这玩意我相信很可能在不久的将来会融入到ASP.NET MVC中。

 

开发提供数据 的API,最重要的是数据的安全性。那么对于我们来说,如何确保数据的安全将会是需要思考的问题。没有SOAP头,只能用别的方式。比如 OAUTH,HTTP AUTH等等。这篇文章将会和大家探讨下普通的http认证使用。然后会在后续提供oauth认证方案。。。。 Smile 

 

声明下:对于老鸟们,下面的文章可能对你没用,因为都是基础的http认证知识。

 

先看看ASP.NET MVC 官网提供的例子:http://code.msdn.microsoft.com/ASPNET-Web-API-JavaScript-d0d64dd7

Web API:

image

 

默认的是使用Form认证。对于我们来说这个是比较熟悉的。如果想了解MVC是如何实现监测form认证的,可以下载下MVC源代码看看(反正我是看着那些代码头疼Smile)。但是吧,这个简单的检测认证部分我还是能看明白的:

image

 

 

如果你使用的是跨平台的调用Web API,那么这个认证好像就没法用了。需要自定义认证方式,简单的办法就是继承Authorize类,override方法OnAuthorization。

这里假设我们使用基本的http认证,那么OnAuthorization方法实现如下:

image

 

在http请求的header中查看是否有认证信息,然后使用Base64解密:

image

 

来吧,浏览器测试下:访问添加了CustomBasicAuthorize的Controller,会弹出windows认证框,输入用户名和密码,使用Fiddler跟踪下:

image

 

 

 

 

 

 

http 请求信息:

image

 

看着认证信息加密了,其实没啥用,Base64加密的,太容易破解了。 所以如果这种认证方式也就适合在公司内部系统使用。 如果你真想在项目中使用,也是可以的,请使用SSL。

 

以上没有提供object-c的调用代码或者Android的调用代码。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏