Asp.Net MVC 4 Web API 中的安全认证-自定义Authrize Filter

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认证知识。

 

Web API:

 

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

 

 

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

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

 

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

 

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

 

 

 

 

 

 

http 请求信息:

 

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

 

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

 

原文链接:https://www.cnblogs.com/n-pei/archive/2012/05/25/2517610.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/17780

(0)
上一篇 2023年1月19日
下一篇 2023年1月20日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml