iis 8.5 issue inetpub do not have permission

Leave a comment


OK, working from memory here as I am not in front of a Windows machine.

If you right click on your webroot folder /inetpub/wwwroot/ or the website directory you are working on open properties and select security, I think it is, you will see the list of users with their permissions for that folder. There is a section to add new users where you can add the IUSR account (search from the list of users if you need to) which will be the default user used when anonymous authentication is enabled. Give this account the relevant permissions (read, write, execute) ensuring you apply to file and subfolders. Refresh the website in IIS and you should hopefully be good to go.


Serialize Deserialize

Leave a comment

ปกติแล้ว Object ที่เราสร้างขึ้นจะเก็บไว้ใน memory เพราะฉะนั้น ช่วงชีวิตมากที่สุดของมันก็จะอยู่จนกว่าโปรแกรมมันจะหยุดทำงาน คิดดูหากว่า เราสามารถเก็บ state ของมัน ไปใช้ได้ต่อ เมื่อโปรแกรมกลับมาทำงานใหม่ หรือสามารถส่ง Object เหล่านั้นไปที่อื่นได้

ปัญหามันจะเกิดก็ต่อเมื่อเราพยายามจะส่ง Object ข้ามเครื่องกัน ซึ่งเครื่องแต่ละเครื่องก็สถาปัตยกรรม แตกต่างกัน การจัดการ byte ก็แตกต่างกัน ซึ่งถ้าไม่มี Serializable แล้ว เราจะต้องมาจัดการกันเอาเอง ซึ่งคงเป็นเรื่องน่าปวดหัวมาก

Serializable จึงเข้ามาช่วยจัดการตรงนี้ให้ ทำให้เราสามารถโฟกัสไปที่ bussiness ของเรา ไม่ต้องมาปวดหัวเป็นห่วงเรื่อง conflict ที่อาจจะเกิดขึ้น

Serializable เป็นแค่ marker interface เพราะฉะนั้นเราไม่ต้อง implement method อะไรเพิ่ม class ที่สำคัญส่วนใหญ่ก็จะ implement Serializable ไว้หมดแล้ว เช่น String เป็นต้น

// collection
            IList<Person> pList = new List<Person>(){
                new Person(){ firstName="chutchai.kp", email="chutchai.kp@gmail.com", grade=13},
                new Person(){ firstName="chutchai", email="chutchai.kp@gmail.com", grade=13},
                new Person(){ firstName="kp", email="chutchai.kp@gmail.com", grade=13}

            // to string
            XmlSerializer x = new XmlSerializer(pList.GetType());
            TextWriter tw = new StringWriter();
            x.Serialize(tw, pList); // tw is output
            //Console.WriteLine(tw.ToString()); // output ***

            // to object (collection)
            TextReader re = new StringReader(tw.ToString());
            var obj = x.Deserialize(re);


Fix “A potentially dangerous Request.Form value was detected from the client (FreeTextBox1=”…”

1 Comment

If you are on .net 4.0 make sure you add this in your web.config
<httpRuntime requestValidationMode=”2.0″ />

myTextBox.Text = Server.HtmlEncode(myStringFromDatabase);

MyLabel.Text = HttpUtility.HtmlEncode(MyTextBox.Text)

3. To disable request validation on a page add the following directive to the existing “page” directive in the file (you will need to switch to the HTML view for this):

ASP.NET – Working with Gridview TemplateFields

Leave a comment

1. code behide
public string ComputeSeniorityLevel(TimeSpan ts)
int numberOfDaysOnTheJob = ts.Days;
if (numberOfDaysOnTheJob >= 0 && numberOfDaysOnTheJob <= 1000) return “Newbie”; else if (numberOfDaysOnTheJob > 1000 && numberOfDaysOnTheJob <= 4000) return “Associate”; else if (numberOfDaysOnTheJob >= 4000 && numberOfDaysOnTheJob <= 8000)
return “One of the Regulars”;
return “An Ol’ Fogey”;

2. html

<asp:GridView ID="GridView1" Runat="server" 
    DataSourceID="employeeDataSource" AutoGenerateColumns="False"
    BorderWidth="1px" BackColor="White" GridLines="Vertical" 
    CellPadding="4" BorderStyle="None"
    BorderColor="#DEDFDE" ForeColor="Black">
    <FooterStyle BackColor="#CCCC99"></FooterStyle>
    <PagerStyle ForeColor="Black" HorizontalAlign="Right" 
    <HeaderStyle ForeColor="White" Font-Bold="True" 
    <AlternatingRowStyle BackColor="White"></AlternatingRowStyle>
        <asp:BoundField HeaderText="Last" DataField="LastName" 
        <asp:BoundField HeaderText="First" DataField="FirstName" 
        <asp:BoundField HeaderText="Hire Date" DataField="HireDate" 
        <asp:TemplateField HeaderText="Seniority">
                <%# ComputeSeniorityLevel(DateTime.Now – 
                     (DateTime)Eval("HireDate")) %>
    <SelectedRowStyle ForeColor="White" Font-Bold="True" 
    <RowStyle BackColor="#F7F7DE"></RowStyle>

ref: http://msdn.microsoft.com/en-us/library/aa479353(lightweight).aspx

How to use HtmlEncode with TemplateFields, Data Binding, and a GridView

Leave a comment

Label ID="LabelDescription" 
           Text='<%# System.Web.HttpUtility.HtmlEncode((string)Eval("Description")) %>'

Asp.net Permalinks Using URL Rewriting

Leave a comment

A Permalink is a permanent link which points to a particular blog entry or forum entry. For example the permalink for this blog article is http://csharp-codesamples.com/2009/03/aspnet-permalinks-using-url-rewriting.

This does not mean that a physical page is created for each blog entry. Instead a single page shows the data for multiple blogs articles dynamically based on some query string.

But all pages in asp.net end with a .aspx extension and if we pass a query string to the page it will look something like Page.aspx?query=test. These links are not very search engine friendly.

This article describes a simple method to create permalinks and improve your asp.net websites search engine optimization using URL rewriting without the use of custom handlers.

ref: http://csharp-codesamples.com/2009/03/aspnet-permalinks-using-url-rewriting/

FileUpload in UpdatePanel, ASP.NET, like Gmail

Leave a comment


Older Entries