可能是简单问题: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) //イ「ヌメシモテワニアセン
string cookieStr = FormsAuthentication.Encrypt(ticket);
//3) エエスィcookie
HttpCookie cookie =new HttpCookie(FormsAuthentication.FormsCookieName,cookieStr);
if(PersistCookie.Checked) //ネ郢﨧テサァム。ヤヒア」エ貪ワツ・
cookie.Expires=ticket.Expiration;//ノ靹テcookieモミミァニレ
//cookieエ豺ナツキセカ
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> ");