這是情況。我有一個webservice(C#2.0),它由(主要)從System.Web.Services.WebService繼承的類組成。它包含幾個方法,都需要調用一個方法來檢查它們是否被授權。在每個web服務調用之前調用某種方法
基本上是這樣的(原諒架構,這純粹是作爲示例):
public class ProductService : WebService
{
public AuthHeader AuthenticationHeader;
[WebMethod(Description="Returns true")]
[SoapHeader("AuthenticationHeader")]
public bool MethodWhichReturnsTrue()
{
if(Validate(AuthenticationHeader))
{
throw new SecurityException("Access Denied");
}
return true;
}
[WebMethod(Description="Returns false")]
[SoapHeader("AuthenticationHeader")]
public bool MethodWhichReturnsFalse()
{
if(Validate(AuthenticationHeader))
{
throw new SecurityException("Access Denied");
}
return false;
}
private bool Validate(AuthHeader authHeader)
{
return authHeader.Username == "gooduser" && authHeader.Password == "goodpassword";
}
}
正如你可以看到,Validate
有方法中每個方法調用。我正在尋找一種方法來調用該方法,同時仍然能夠以一種理智的方式訪問肥皂標題。我查看了global.asax
中的事件,但我認爲我不能訪問該課程中的標題...我可以嗎?
並不像我想象的那麼直截了當。現在就試試這個。 – 2008-09-25 08:58:35