OData 1-3 自定義身份驗證和OData
和windows身份驗證相比,在實際程序中應用更多的是自定義身份驗證
1.在WCF服務內做身份驗證
代碼
public class ODataBaseService<T> : DataService<T>//, IServiceProvider
{
public ODataBaseService()
{
this.ProcessingPipeline.ProcessingRequest += new EventHandler<DataServiceProcessingPipelineEventArgs>(ProcessingPipeline_ProcessingRequest);
}
void ProcessingPipeline_ProcessingRequest(object sender, DataServiceProcessingPipelineEventArgs e)
{
if (Authenticate(HttpContext.Current))//在這里使用http header 或者其他的http request 內容來判斷用戶 和權限
throw new DataServiceException(401, "401 Unauthorized");
}
這里我目前還有一些疑問,例如這里客戶端的數據是非結構化的,雖然方法名稱 列名什么都有,
但是要自己實現分析代碼以確定客戶訪問的是什么權限(例如什么表 什么列) 總歸是麻煩的
希望有微軟官方的實現或者第三方實現(目前我還沒有找到)
2.使用HttpModule做驗證.
其實這個方法實現和wcf內實現是一樣的...只是放的地方不一樣而已
3.OAuth WRAP

浙公網安備 33010602011771號