Autoryzacja w Web.config

by Piotrosz 21. November 2008
Każdy przedszkolak wie, że w pliku web.config można skonfigurować autoryzację do folderu lub podfolderu aplikacji WWW. Nie wiedziałem, że można te wartości oddzielać przecinkami!

 
 
 
 

albo można to zrobić w jednej linijce:

 
 
 

Oczywiście to dotyczy sytuacji, gdy jest windows authentication:
 
  
  
  


Znak "*" oznacza totalnie wszystkich użytkowników. Zarówno "zautentyfikowanych" jak i nie.
Znak "?" oznacza wszystkich "niezautentyfikowanych" użytkowników (all unauthenticated users).

W tym przykładzie jest dozwolony dostęp do aplikacji tylko dla grup G_1 i G_2 oraz wymienionych użytkowników. Reszta ludzi ma zabroniony dostęp.

Moje ulubione skróty klawiszowe

by Piotrosz 18. November 2008
Moje ulubione skróty klawiszowe w Visual Studio:

[F12] idź do definicji,
[Ctrl] + [m], [l] zwiń wszystko (regiony, bloki kodu),
[Ctrl] + [k] + [f] popraw wcięcia i sformatuj zaznaczony fragment kodu,
[Ctrl] + [k] + [d] popraw wcięcia i sformatuj kod w całym dokumencie,
[Shift] + [F7] przełączaj między code view i design view pliku .aspx,
[F7] przełączaj między plikiem .aspx a odpowiednim plikiem .cs (code-behind file),
[F11] step into (debug),
[Shift] + [F11] step out (debug),
[F10] step over (debug),
[F9] włącz/wyłącz pułapkę (breakpoint),
[Shift] + [F5] zatrzymaj debuggowanie,
[Ctrl] + [Shift] + [F9] usuń wszystkie pułapki,
[Ctrl] + [Alt] + [l] pokaż Solution Explorer,
[Ctrl] + [k], [c] zakomentuj zaznaczenie,
[Ctrl] + [k], [u] odkomentuj zaznaczenie,
[Alt] + [Enter] pokaż właściwości.
[Ctrl] + [k], [s] otocz dyrektywą ("surround with").
[Ctrl] + [Shift] + [Space] Wyświetl podpowiedź dla parametru (parameter info)
[Ctrl] + [k], [Ctrl] + [i] Wyświetl "quick info"
[Ctrl] + [Space] Wyświetl podpowiedzi IntelliSense (word completion)

Zmiana tematu strony w Page_PreInit()

by Piotrosz 7. November 2008
Wybór tematu strony w metodzie strony Page_PreInit():
protected void Page_PreInit(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(Request.QueryString["Theme"]))
    {
        switch (Request.QueryString["Theme"])
        {
            case "1":
                Page.Theme = "Theme1";
                break;
            case "2":
                Page.Theme = "Theme2";
                break;
        }
    }
}

Zobacz wynik

Page.Header

by Piotrosz 6. November 2008
Obiekt Page.Header (klasy HtmlHead) pozwala na dynamiczną zmianę tytułu i stylu strony poprzez właściwości Title oraz StyleSheet.

Przykład:
protected void Page_Load(object sender, EventArgs e)
{
    // Zmiana tytułu strony
    Page.Header.Title = DateTime.Now.ToLongTimeString();

    // Zmiana stylu strony
    Style style = new Style();
    style.BackColor = System.Drawing.Color.AliceBlue;
    style.ForeColor = System.Drawing.Color.Red;
    Page.Header.StyleSheet.CreateStyleRule(style, null, "body");
}
Należy pamiętać, by element <head> na stronie miał atrybut runat="server"

Cross-page posting

by Piotrosz 3. November 2008
Na stronach aspx dane zazwyczaj są wysyłane do tej samej strony. Gdy potrzeba przesłać dane z formularza do innej strony należy zastosować cross-page posting.
Przykład:
Na stronie CrossPagePosting.aspx dodajemy guzik, który wykona cross-page posting z ustawioną właściwością PostBackUrl oraz pole tekstowe, którego zawartość zostanie przesłana do innej strony (CrossPagePosting2.aspx):
Imię: 

W pliku code-behind strony dodajemy właściwość:
public partial class CrossPagePostingTest : System.Web.UI.Page
{
    public string Imie
    {
        get { return txtImie.Text; }
    }
}
Na stronie, do której przesyłane są dane (CrossPagePosting2.aspx) dodajemy dyrektywę:
<%@ PreviousPageType VirtualPath="~/CrossPagePosting.aspx" %>
i wyświetlamy imię w etykiecie poprzez właściwość PreviousPage.Imie:
protected void Page_Load(object sender, EventArgs e)
{
    if (Page.PreviousPage != null)
    {
        lbl.Text = Server.HtmlEncode(PreviousPage.Text);
    }
    else
    {
        lbl.Text = "Previous page is null.";
    }
}

Zobacz wynik

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen