2010-06-30 121 views
3

有沒有什麼辦法做這樣的事情?web.config位置路徑屬性(帶參數)的正則表達式

<location path="/(view|edit)post.aspx\?id=[7-9][0-9]+"> 
    <system.web> 
     <authorization> 
     <allow roles="AdminPublishers"/> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 

授權只是一個例子。我希望能夠與這些地點做其他事情。

+0

你究竟在做什麼? – 2010-07-02 04:16:44

+0

最初我只想授權,但將自定義錯誤,全球化等應用到一組地點會非常有用。授權只能通過自定義的HttpModule來解決,但微軟已經開發了基於位置的授權模塊。改變位置路徑行爲會很好。 – Eduardo 2010-07-03 04:38:34

回答

0

您可以使用HttpModule並將處理程序附加到AuthenticateRequest事件。在您的處理程序中,使用您的正則表達式來匹配傳入的請求URL,如果匹配,請檢查當前登錄用戶的角色。您也可以將其設置爲從Web.config讀取配置,如果這是你在追求。

+0

嗨。如果我只需要授權用戶,那就沒有問題,但我想更改其他system.web設置以匹配相應的位置。 – Eduardo 2010-06-30 02:07:59

+0

啊,我明白了。你有沒有嘗試把web.config的位置,重寫設置? http://msdn.microsoft.com/en-us/library/ms178685.aspx – 2010-06-30 02:20:03

+0

我不是100%清楚你想要做什麼。您是否試圖將安全性應用於HttpHandler(s)或只是啓動並運行? – 2010-06-30 21:17:42