日期:2014-05-20  浏览次数:20866 次

可能是简单问题:WebClient中可否实现asp.net的Form身份验正?在线等待。
WebClient中可否实现asp.net的Form身份验正?
是如何实现的?

------解决方案--------------------
UP
------解决方案--------------------
沒弄過,有情幫頂
------解决方案--------------------
把认证后的cookie提交回去,
------解决方案--------------------

WebClient可否实现asp.net的Form身份验正 ? 可以不?学习!!!

up~~~
------解决方案--------------------
就是做这个用的
FormsAuthenticationTicket
------解决方案--------------------
service.CookieContainer = new CookieContainer();
就OK了
------解决方案--------------------
WebClient.Credentials 属性

Credentials 属性包含的身份验证凭据用于访问主机上的资源。在多数客户端方案中,应使用 DefaultCredentials,这是当前登录的用户的凭据。为此,将 UseDefaultCredentials 属性设置为 true,而不是设置此属性。

如果 WebClient 类用于中间层应用程序(如 ASP.NET 应用程序),则 DefaultCredentials 属于运行 ASP 页的帐户(服务器端凭据)。通常,将此属性设置为名义上发出请求的客户端的凭据。

------解决方案--------------------
WebClient webClient = new WebClient();
Net.NetworkCredential cred = new Net.NetworkCredential();
cred.UserName = "user ";
cred.Password = "password ";
webClient.Credentials = cred;
------解决方案--------------------
修改web.config文件 改为form 认证
------解决方案--------------------
<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是“Windows”、“Forms”、
“Passport”和“None”
<authentication mode= "Forms ">
<forms name= ".SecurityDemo " loginUrl= "02login.aspx " >

</forms>
</authentication>
-->
上面设置form

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, tbName.Text,DateTime.Now,
DateTime.Now.AddMinutes(30),PersistCookie.Checked, "User ");
//2) //&#65394;&#65378;&#65415;&#65426;&#65404;&#65427;&#65411;&#65436;&#65414;&#65393;&#65406;&#65437;
string cookieStr = FormsAuthentication.Encrypt(ticket);
//3) &#65396;&#65396;&#65405;&#65384;cookie
HttpCookie cookie =new HttpCookie(FormsAuthentication.FormsCookieName,cookieStr);
if(PersistCookie.Checked) //&#65416;郢﨧&#65411;&#65403;&#65383;&#65425;&#65377;&#65428;&#65419;&#65393;&#65379;&#65396;貪&#65436;&#65410;&#12539;
cookie.Expires=ticket.Expiration;//&#65417;靹&#65411;cookie&#65427;&#65424;&#65424;&#65383;&#65414;&#65434;
//cookie&#65396;豺&#65413;&#65410;&#65399;&#65406;&#65398;
cookie.Path = FormsAuthentication.FormsCookiePath;
Response.Cookies.Add(cookie);
// 4) do a redirect
string strRedirect;
strRedirect=Request[ "ReturnUrl "];
if(strRedirect==null)
strRedirect= "default.aspx ";
Response.Redirect(strRedirect,true);
}
else
Response.Write( " <script language= 'javascript '> alert( '000000 ') </script> ");