仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 653|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计利用ASP.Net Forms形式完成WebService身...

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:46:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。asp.net|web在平安性请求不是很高的ASP.Net程序中,基于Forms的身份考证是常常利用的一种体例,而假如必要对WebService举行身份考证,最经常使用的多是基于Soap标头的自界说身份考证体例。假如对二者做一下对照的话,明显,基于Forms的考证体例加倍便利易用,可否将Forms考证体例使用到WebService中往呢?
从实际上讲,利用基于Forms的体例对WebService举行身份考证是可行的,可是利用过程当中会存在以下两个成绩:
  1.基于Forms的考证体例同时也是基于Cookie的考证体例,在利用扫瞄器时,这个成绩是不必要我们思索的。但关于利用WebService的使用程序来讲,默许是不克不及保留Cookie的,必要我们本人往做这个事情。
  2.WebService既然是一个A2A(ApplicationToApplication)使用程序,利用Web表单举行身份考证明显不太符合,并且,这将不成制止的形成人机交互,使WebService的使用年夜打扣头。
接上去,我们就分步办理这两个成绩:
  1.Cookie的保留成绩
WebService的客户端代办署理类有一个属性CookieContainer可用于设置或猎取Cookie汇合,保留Cookie的义务就交给他了:
System.Net.CookieContainercookieContainer=newSystem.Net.CookieContainer();
MyService.WebServiceservice=newApp.MyService.WebService();
service.CookieContainer=cookieContainer;
  2.我们不想利用Web表单举行身份考证,侥幸的是,ASP.Net表单考证中的表单页(即Web.config文件中forms元素内的loginUrl)一样能够指定为WebService文件。
我们创立一个专门用作身份考证的Web服务,临时定名为Login.asmx,然后让loginUrl即是“Login.asmx”,固然,还必要在Web.config文件中的authorization节中克制匿名会见(不然我们可就白忙活了),完成设置后的Web.config文件以下:
<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<system.web>
<compilationdebug="false"/>
<authenticationmode="Forms">
<formsname="MyService"loginUrl="Login.asmx"></forms>
</authentication>
<authorization>
<denyusers="?"/>
</authorization>
</system.web>
</configuration>
实在我们其实不想在未经由过程身份考证时让扫瞄器转向到Login.asmx,关于利用WebService的客户程序来讲,真实的实惠在于:能够匿名会见Login.asmx中的办法(固然我们也能够把Login.asmx放在独自的目次中,然后同意对该目次的匿名会见来达个这个目标,但我以为仍是用loginUrl更文雅一些)。
接上去,我们为Login.asmx增加用于身份考证的WebMethod:
[WebMethod]
publicboolCheck(stringuserName,stringpassword)
{
if(userName=="aaaaaa"&&password=="123456")//增加考证逻辑
{
System.Web.Security.FormsAuthentication.SetAuthCookie(userName,false);
returntrue;
}
else
{
returnfalse;
}
}
最初一步事情就是:让客户程序中的WebService实例与Login实例共享CookieContainer。
classSample
{
System.Net.CookieContainercookieContainer=newSystem.Net.CookieContainer();
publicvoidLogin()
{
MyServiceLogin.Loginlogin=newApp.MyServiceLogin.Login();
login.CookieContainer=cookieContainer;
login.Check("aaaaaa","123456");
}
publicvoidShowHelloWorld()
{
MyService.WebServiceservice=newApp.MyService.WebService();
service.CookieContainer=cookieContainer;
Console.WriteLine(service.HelloWorld());
}
}
Login()今后再ShowHelloWorld(),你是不是看到了我们熟习的“HelloWorld”?Ok,就这么复杂!
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-18 16:17:51 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-22 10:29:26 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
若天明 该用户已被删除
地板
发表于 2015-1-31 05:58:12 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
再现理想 该用户已被删除
5#
发表于 2015-2-6 17:41:01 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
小妖女 该用户已被删除
6#
发表于 2015-2-17 18:44:09 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
不帅 该用户已被删除
7#
发表于 2015-3-5 22:09:27 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
简单生活 该用户已被删除
8#
发表于 2015-3-12 15:50:12 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
莫相离 该用户已被删除
9#
发表于 2015-3-19 23:40:28 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表