﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-wizardjk-随笔分类-ASP .NET</title><link>http://www.cppblog.com/wizardjk/category/18304.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 10 Feb 2012 21:55:06 GMT</lastBuildDate><pubDate>Fri, 10 Feb 2012 21:55:06 GMT</pubDate><ttl>60</ttl><item><title>ie9 用fck上传图片 bug</title><link>http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Sat, 04 Feb 2012 05:51:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/164938.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/164938.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/164938.html</trackback:ping><description><![CDATA[<div>当FCK使用ie9上传的时候，弹出层时不能显示内容<br /><br /><div><div>原因是 IE 9 不支持<span style="color: #0000ff;">var $=document.getElementById</span>;这样的写法了。<br />解决方法可以这么来做：<br /><br />打开这个文件， <span style="color: #0000ff;">fckeditor/editor/js/fckeditorcode_ie.js</span> ，找到第 <span style="color: #0000ff;">38</span>行的这个方法：<br /><br />FCKTools.RegisterDollarFunction<br />将原来的<br /><span style="color: #0000ff;">FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};</span><br />修改方法为：<br /><span style="color: #0000ff;">FCKTools.RegisterDollarFunction=function(A){A.$=function(v){return A.document.getElementById(v);}};</span></div></div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/164938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2012-02-04 13:51 <a href="http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用母版页后内容页的命名问题</title><link>http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Mon, 09 Jan 2012 13:20:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/163898.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/163898.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/163898.html</trackback:ping><description><![CDATA[使用母版页可以用来统一命名，但是如果需要按照内容页内容动态命名，可以使用如下方法：<br />1：在母版页的.cs文件中新建一public函数<br />&nbsp;eg.<br /><div>&nbsp;&nbsp;&nbsp; <span style="color: #0000ff;">public void SetName(string name)</span><br /><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp; {</span><br /><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Page.Header.Title = name;</span><br /><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp; }<br /><br /><span></span></span><span style="color: #000000;">2:在内容页aspx文件中，在引用母版页语句后添加如下语句<br /><div>&lt;%@ Page Language="C#" MasterPageFile="~/Detail.master" AutoEventWireup="true" CodeFile="IntegralDetails.aspx.cs" Inherits="IntegralDetails"&nbsp; %&gt;<br /><span style="color: #0000ff;">&lt;%@ MasterType VirtualPath="~/Detail.master" %&gt;<br /><br /></span><span>3：在内容页.cs文件中使用如下语句对页面title进行赋值</span><span style="color: #0000ff;"><br /><div>(this.Master).SetName("动态改变的title");<br /><br /><span style="color: #000000;">4：如果在内容页的aspx文件中表明本页title，不进行动态赋值，也是可以的</span></div></span></div><br /></span><span style="color: #0000ff;"></span></div><img src ="http://www.cppblog.com/wizardjk/aggbug/163898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2012-01-09 21:20 <a href="http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Form认证</title><link>http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Mon, 05 Dec 2011 13:44:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/161530.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/161530.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/161530.html</trackback:ping><description><![CDATA[<div><span style="font-family: Verdana;">ASP.NET 的安全认证，共有&#8220;Windows&#8221;&#8220;Form&#8221;&#8220;Passport&#8221;&#8220;None&#8221;四种验证模式。</span></div>一.部署运用Form认证<br /><div><span style="font-family: Verdana;">1：新建一个测试项目（暂且为&#8220;FormTest&#8221;吧），包含三张页面（Default.aspx、Login.aspx、UserInfo.aspx）<br />2：修改web.config<br /></span>&nbsp;&nbsp; 1).认证字段<div><span style="display: inline;" id="Code_Open_Text_014153"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authentication </span><span style="color: #ff0000;">mode</span><span style="color: #0000ff;">="Forms"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;"></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014153"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forms </span><span style="color: #ff0000;">loginUrl</span><span style="color: #0000ff;">="Login.aspx"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=".ASPXAUTH"</span><span style="color: #0000ff;">&gt;<br /></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014153"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">forms</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"> <br /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authentication</span><span style="color: #0000ff;">&gt;</span> </span></div>&nbsp;&nbsp; 2).权限字段<br /><div><span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;<br /></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny </span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">&gt;<br /></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">deny</span><span style="color: #0000ff;">&gt;<br />&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;<br /></span><span>写在&lt;system.web&gt;节下，如果想写在&lt;configuration</span><span style="color: #0000ff;">&gt;</span><span>节下方便管理需要如下格式<br />&lt;location path="(需要访问控制的文件夹或页面文件)"&gt;<br /></span></span>&nbsp;&nbsp; &lt;system.web&gt;&nbsp; &nbsp;&nbsp; <div>&nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;<br /> </span></span>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny </span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">&gt;<br /> </span></span>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">deny</span><span style="color: #0000ff;">&gt;<br /> </span></span>&nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span></span></div>&nbsp;&nbsp; &lt;/system.web&gt; <br /><span style="display: inline;" id="Code_Open_Text_014204"><span>&lt;/location&gt;<br />3.编写登陆和退出的.CS代码<br /><div>1).<span style="font-family: Verdana;">指验证后返回请求页面</span><br />&nbsp;&nbsp; private void Btn_Login_Click(object sender, System.EventArgs e)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; if(this.Txt_UserName.Text=="Admin" &amp;&amp; this.Txt_Password.Text=="123456")<br />&nbsp;&nbsp; &nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; System.Web.Security.FormsAuthentication.RedirectFromLoginPage(this.Txt_UserName.Text,false);<br />&nbsp;&nbsp; &nbsp;&nbsp; }<br />&nbsp;&nbsp; }&nbsp;</div>2).</span></span><span style="display: inline;" id="Code_Open_Text_014204"><span>通过验证后就直接发放 Cookie ，跳转页面将由程序员自行指定，此方法多用于 Default.aspx 使用框架结构的系统</span></span><span style="display: inline;" id="Code_Open_Text_014204"><span><div>&nbsp;&nbsp; private void Btn_Login_Click(object sender, System.EventArgs e)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; if(this.Txt_UserName.Text=="Admin" &amp;&amp; this.Txt_Password.Text=="123456")<br />&nbsp;&nbsp; &nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; System.Web.Security.FormsAuthentication.SetAuthCookie(this.Txt_UserName.Text,false);<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Response.Redirect("Default.aspx");<br />&nbsp;&nbsp; &nbsp;&nbsp; }<br />&nbsp;&nbsp; }</div>3).使用用户凭证<br /></span><span style="color: #0000ff;"><div>&nbsp;<span>protected void Logon_Click(object sender, EventArgs e)</span><br /><span>&nbsp;&nbsp;&nbsp; {</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((UserEmail.Text == "admin" &amp;&amp; UserPass.Text == "123123") || </span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (UserEmail.Text == "user" &amp;&amp;　UserPass.Text == "123123")) //允许通过验证的用户，这部分可以使用数据库用户验证替代</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初始化一个用户凭证的实例</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormsAuthenticationTicket myTicket;</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //根据不同的用户名分配不同的role(这部分可以通过数据库role读取来替代)</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (UserEmail.Text == "admin")</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTicket = new FormsAuthenticationTicket(1, UserEmail.Text, DateTime.Now, DateTime.Now.AddMinutes(60),false, "admin");</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTicket = new FormsAuthenticationTicket(1, UserEmail.Text, DateTime.Now, DateTime.Now.AddMinutes(60), false, "user");</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string encryptedTicket = FormsAuthentication.Encrypt(myTicket); //加密用户凭证</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //把用户凭证存入Cookie </span>,<span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">FormsAuthentication.FormsCookieName</span></span>参数位于config文件中Form认证的name属性<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket); </span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加Cookie</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Cookies.Add(authCookie);</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //跳转默认重定向的默认 URL具体见Web.Config的配置</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Redirect(FormsAuthentication.GetRedirectUrl(UserEmail.Text, Persist.Checked));</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Msg.Text = "用户名密码出错，请重试";</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><br /><span>&nbsp;&nbsp;&nbsp; }<br />&nbsp; 使用：<br /><div>&nbsp;Welcome.InnerHtml = "Hello, " + Server.HtmlEncode(User.Identity.Name); //输出用户名<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormsIdentity id = (FormsIdentity)User.Identity;&nbsp; //获取用户标识<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormsAuthenticationTicket ticket = id.Ticket;</div><div>//显示用户凭证中的相关属性<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cookiePath.Text = ticket.CookiePath;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expireDate.Text = ticket.Expiration.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expired.Text = ticket.Expired.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isPersistent.Text = ticket.IsPersistent.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; issueDate.Text = ticket.IssueDate.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name.Text = ticket.Name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userData.Text = ticket.UserData;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version.Text = ticket.Version.ToString();<br /><span style="color: #000000;">4).</span><span style="color: #000000;">退出<br /><div>&nbsp;&nbsp; private void Btn_LogOut_Click(object sender, System.EventArgs e)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; System.Web.Security.FormsAuthentication.SignOut();<br />&nbsp;&nbsp; }</div>4.如何判断用户是否已经登陆及获取用户信息</span><span style="color: #000000;"><div><div>&nbsp;&nbsp; if(User.Identity.IsAuthenticated)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; //你已通过验证，<br />&nbsp;&nbsp; }</div></div><br /></span></div><br /></span></div><br /></span> </span></div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/161530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-12-05 21:44 <a href="http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>