Nine MVP's Blog

17/04/2014

เอาสิทธิ์ files และ folders คืนมา!!

Filed under: File System, Security — Tags: , , — Nine MVP @ 11:02 pm

วันนี้มีปัญหาเรื่อง permission ใน folder website หายไป  ด้วยความผิดพลาดบางอย่าง  มันได้ปลดสิทธิ์ของ files / folders ออกทั้งหมดทั้ง Administrators, IIS User, etc เกือบหมดเกลี้ยง  เกิด error Access Denied ตลอดเวลา

จา่กนั้นได้ทดลองทำการ add permission กลับมาด้วย Windows UI โดยเลือก Folder -> Right click -> Properties แล้วไปที่ Security Tab  จากนั้นก็กด Add User / Group กลับมา

ขณะที่ Windows กำลัง add permission ที่กำหนดผ่าน UI ไป ปรากฎว่าบาง File ก็ยังไม่สามารถนำกลับมาได้ ฟ้อง Access Denied ขึ้นมาจำนวนมาก เริ่มเอามือกุมขมับ

จากนั้นไปดู script ที่เป็นปัญหา มีการใช้คำสั่ง cacls ในการเพิ่ม user เข้ามาจึงคิดว่าน่าจะมี switch option ที่ช่วยแก้ปัญหานี้ได้  link CACLS 

หลังจากอ่านการทำงานพอเข้าใจ ก็เลยต้องยอมให้ทุกคนเข้ามาจัดการกับ Files/Folders นี้ได้ในขั้นต้น แล้วค่อยปลดออกทีหลัง

icacls D:\folder  /t  /c  /grant Everyone:F

หลังจากนั้นก็ค่อย grant user/group ตาม permission เก่ากลับเข้าไป

ทุกอย่างจึงกลับมาทำงานได้ปกติเหมือนเดิม T__T

08/04/2014

Crystal Reports SP9 for Visual Studio 2013

Filed under: report tools — Nine MVP @ 11:44 pm

Crystal Reports ออก SP9 รองรับ Visual Studio 2013 แล้วครับ

SAP Crystal Reports, developer version for Microsoft Visual Studio – Service Pack 9 – Fixed Issues and updates

New In This Release

Added support for following platforms:
1. Visual Studio 2013!
2. .NET 4.5.1
3. Data Sources: SQL Server 2014 (tested CTP2), Oracle 12c, HANA SP7
4. Web Browser: Safari 7

release notes http://scn.sap.com/docs/DOC-7824

download http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0_9.exe

05/04/2014

Secure Server Side Information

Filed under: ASP.NET, ASP.NET MVC, Core System, WEB, Web Security — Nine MVP @ 4:24 pm

เนื่องจากเคยกล่าวไว้ไปหลายรอบในกลุ่ม Facebook เรื่องการปิด Server side information เพื่อความปลอดภัย ลดภาวะเสี่ยงที่จะถูกโจมตีจากช่องโหว่ของ software และ OS เอง

ตัวอย่าง  หลังจากที่ผมได้ยิง request ไปที่ website แห่งนึง ผมลองดู HTTP Header ที่ส่งกลับมาจะพบรายละเอียดดังภาพ

4-5-2014 3-48-28 PM

มาบทความนี้จะช่วยระบุวิธีการปิด HTTP Response Header ที่ส่งออกมาจากฝั่ง Server ไปยัง Client

 

3 ขั้นตอนลับลวงพราง สู่ความปลอดภัยระดับพื้นฐาน

 

1. ลบหรือลวงค่า header X-Powered-By : ASP.NET

ให้ไปแก้ไขใน IIS เปิด website ที่ต้องการมาแก้ไข กดเลือกที่ website ตามรูปด้านล่าง

4-5-2014 3-33-13 PM

4-5-2014 3-35-49 PM

เป็นอันสำเร็จ

 

2. ลบหรือลวงค่า header Server : Microsoft-IIS/8.0 และ X-AspNet-Version : 4.0.xxxx

สร้าง class ขึ้นมาตัวนึง แล้ว inherit IHttpModule Interface เพื่อลบหรือแก้ไขค่าของ Server header

public class SecureInfoModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.PreSendRequestHeaders += OnPreSendRequestHeaders;
    }
 
    public void Dispose() { }
 
    void OnPreSendRequestHeaders(object sender, EventArgs e)
    {
        HttpContext.Current.Response.Headers.Set("Server", "I don't know ..."); //ใส่ข้อความถึง hacker
    }
}

ต่อจากนั้นนำ module ที่สร้างไว้มา register ลงใน webserver tag
ให้เปิด Web.Config มาแก้ไขกำหนดสั่งปิดการแสดงผล version ของ http runtime

<system.web>
  <httpRuntime enableVersionHeader="false"/>
 ....
 </systen.web>
 นำ class module ที่สร้างไว้ มาใส่ใน webServer tag
 <system.webServer>
 <modules>
 <add name="SecureInfoModule" type="ใส่  namespace ให้ตรง.SecureInfoModule" />
 .........
 </modules>
 </system.webServer>

 

3. ลบหรือลวงค่า X-AspNetMvc-Version : 4.0

เปิดโปรเจ็คใน Visual Studio มองหา Global.asax.cs เปิดมาใส่โค้ด

protected void Application_Start()
{
    MvcHandler.DisableMvcResponseHeader = true;
    .....
}

 

หวังว่าจะเป็นประโยชน์สำหรับเหล่าสาวก .NET  :D

Programming Langurage Index for March 2014

Filed under: Technology Trend — Tags: — Nine MVP @ 8:31 am

ยังไม่ติด TOP 4 ซักที ปีนี้หล่นอีกแล้ว
ภาษาอื่นก็ตกแปลว่าน่าจะโดนแย่งส่วนแบ่งการตลาด
F#คงจะมาแรงแซงขึ้นอันดับ10ไวๆนี้
รอ C# 6.0 ออกมา + M# extension น่าจะขึ้น top 4 ได้แน่นอน

TIOBE Index for March 2014
March Headline: F# on its way to the top 10
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

 

4-5-2014 8-20-27 AM

 

cr. Non Intanon

03/04/2014

WinJS เปิดเป็น opensource

Filed under: win8app — Nine MVP @ 1:03 pm

WinJS เปิดเป็น opensource ‪#‎Win8App‬

เว็บแนะนำ และตัวอย่าง
http://try.buildwinjs.com/default.aspx

01/04/2014

StyleCop ออก version 4.7.49.0 แก้บั๊กและ support Reshaper

Filed under: StyleCop — Tags: , — Nine MVP @ 12:40 pm

StyleCop ออก version 4.7.49.0 แก้บั๊กและsupport Reshaper 8.x

StyleCop-4.7.49.0.msi
application, 4379K, จากวันที่ Mar 31 – มีคนดาวน์โหลดกันไปแล้ว 386,241 downloads
http://stylecop.codeplex.com/releases/view/79972

Release notes

4.7.49.0 (11b87c74fab3)
=======================
Update compatibility of ReSharper from 8.1 to 8.2
Start of 4.7.49.0 dev
Update release history

4.7.48.0 (d39b0c544c65)
=======================
Upgrade ReSharper 8.0 to 8.1
Add Wix3.7
Add VS2013SDK
Set to use mstest 12.0
Add tests back into build
Start of 4.7.48.0 dev
Fix to allow parsertest rules to execute
Update release history

credit : Pong LoGic

ย้าย MVC dll จาก path ไปใช้บน Nuget

Filed under: Uncategorized — Tags: , — Nine MVP @ 8:18 am

ใครที่ยังใช้ MVC ที่ dll ติดมากับตัว installer ดั้งเดิม 
สามารถสลับไปใช้ library จาก nuget package ได้เลยครับ 
จะได้ใช้ feature package restore ในตอน build สะดวกๆ 
ไม่ต้องแบก dll ไปมาระหว่างเครื่องเดฟอีกด้วย ‪#‎แค่ต่อinternetได้‬

ตัวอย่าง MVC3 
ปล. dll version ที่มากับตัว installer คือ 3.0.0.0 แต่ที่มีใน nuget จะเป็น 3.0.20105.1 อัพเกรดได้ไม่มีปัญหาอะไร

ให้ remove DLL
MVC,Razor,WebPages,Infrastructure เก่าที่อ้างอิงจาก gac หรือ install path ออกก่อน

แล้วสั่งที่ package manager console ดังนี้

PM> Install-Package Microsoft.AspNet.Mvc -Version 3.0.20105.1

จะได้
<package id=”Microsoft.AspNet.Mvc” version=”3.0.20105.1″ targetFramework=”net40″ />
<package id=”Microsoft.AspNet.Razor” version=”1.0.20105.408″ targetFramework=”net40″ />
<package id=”Microsoft.AspNet.WebPages” version=”1.0.20105.408″ targetFramework=”net40″ />
<package id=”Microsoft.Web.Infrastructure” version=”1.0.0.0″ targetFramework=”net40″ />

จากนั้นทดสอบรันดูครับ 

!!! อย่าลืมใช้ Source Control จะได้ช่วย rollback หากมีปัญหาเกิดขึ้น !!!

เล่าต่อ

nuget ได้แรงบรรดาลใจมาจาก library version manager จาก ruby gems และข้อดีจากเจ้าอื่นๆ มาพัฒนา ซึ่งช่วยจัดการ library version ได้ดีมากทีเดียว

ใครที่ยังใช้ nuget package restore ไม่เป็นอ่านที่นี่ 
http://docs.nuget.org/…/using-nuget-without-committing

เล่าสั้นๆว่า หากเราใช้ nuget package restore เราไม่จำเป็นต้อง check-in dll เข้าไปใน source control แต่มันจะถูก restore กลับมาเมื่อตอนเราสั่ง build solution/project 
ทำให้ไม่ต้องมานั่งค่อย update dll เข้า source control อีกต่อไป 
และวิธีนี้เหมาะกับ environment ที่มี internet เว้นแต่จะตั้ง nuget service เองในบริษัทครับ

มาแล้ว ASP.NET Identity 2.0 Released!

Filed under: Uncategorized — Tags: , , — Nine MVP @ 8:16 am

มาแล้ว ASP.NET Identity 2.0 Released! ‪#‎เพิ่งใช้v1ทำระบบไป‬ =”=

Announcing RTM of ASP.NET Identity 2.0.0 New Feature เยอะมากกกก

  • Two-Factor Authentication
  • Account Lockout
  • Account Confirmation
  • Password Reset
  • Security Stamp (Sign out everywhere)
  • Make the type of Primary Key be extensible for Users and Roles
  • Support IQueryable on Users and Roles
  • Delete User account
  • IdentityFactory Middleware/ CreatePerOwinContext – UserManager,DbContext
  • Indexing on Username
  • Enhanced Password Validator

V2 รุ่นนี้ทำงานกับ EF 6.1.0

มีตัวอย่างบน nuget ให้ใช้งานโดยติดตั้งบน Empty web project *ตัวอย่างเป็นMVC

PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre

 

ref: http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx

22/03/2014

MSDN Magazine March 2014

Filed under: Uncategorized — Tags: — Nine MVP @ 4:22 pm

MSDN March 2014 มาแล้ว 

- Patterns for Asynchronous MVVM Applications: Data Binding
- Asynchronous TCP Sockets As AN Alternative to WCF
- A .NET Developer Primer For Single-Page Applications
- Creating Modern Microfiche With The Chronicling American API
- Building A Netduino-Based HID Sensor for WinRT

MSDN Magazine Feb 2014

Filed under: msdn magazine — Tags: , — Nine MVP @ 4:21 pm

MSDN Magazine Feb 2014 มาแล้ว 

- Explore the Microsoft .NET Framework 4.5.1
- Build More Efficient Windows Store Apps Using JavaScript: Performance
- Aspect Oriented Programming With The RealProxy Class
- Intercepting Asynchronous Methods Using Unity Interception

Older Posts »

The Shocking Blue Green Theme. Create a free website or blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 43 other followers