而且我不知道怎麼會變成這樣一個CSHTML頁面完成,因爲他們沒有一個類。
您可以放置一個_ViewStart.cshtml
文件,其內容將在每個請求上執行。
或者你可以寫一個custom Http Module
:
public class MyModule: IHttpModule
{
public void Init(HttpApplication app)
{
app.BeginRequest += new EventHandler(OnBeginRequest);
}
public void Dispose()
{
}
public void OnBeginRequest(object s, EventArgs e)
{
// this code here's gonna get executed on each request
}
}
,然後簡單地註冊這個模塊在你的web.config:
<system.webServer>
<modules>
<add name="MyModule" type="SomeNamespace.MyModule, SomeAssembly" />
</modules>
...
</system.webServer>
,或者如果您在經典模式下運行:
<system.web>
<httpModules>
<add name="MyModule" type="SomeNamespace.MyModule, SomeAssembly" />
</httpModules>
</system.web>
基本上,我必須檢查訪問該網站的用戶是否具有針對數據庫的特定IP地址 ,如果是,則允許訪問 否則重定向。
裏面的OnBeginRequest
方法,你可以獲取當前用戶IP:
public void OnBeginRequest(object sender, EventArgs e)
{
var app = sender as HttpApplication;
var request = app.Context.Request;
string ip = request.UserHostAddress;
// do your checks against the database
}
謝謝Darin ...那完美的作品:) – 2013-03-25 08:46:48