[英]wcf and isolated storage- needed explanation
我腦子里有些想法,我想把它們放在適當的架子上,但是以一般的方式,以便將來傳播我的知識。
因此,假設我正在運行WCF服務,它包含兩種方法:一種將一些對象的列表發送到客戶端(當客戶端要求時),第二種方法根據客戶端的操作更改對象的狀態。 通過WCF發送的那些對象存儲在服務端的隔離存儲中。
現在,讓我分組我的問題:
1)首先,我想知道如果許多客戶將我的服務添加為服務引用會發生什么情況。 由於此服務使用的是隔離存儲(假設我使用的是組裝存儲),如果許多客戶端想要同時更改數據會怎樣? 我的意思是,隔離存儲在這里是如何工作的,是否會為每個客戶端生成不同的文件(這意味着對許多用戶來說是安全的,因為每個用戶都在操縱不同的文件)? 因為如果將它存儲在服務器端,那么我認為它是每個人的一個文件。或者也許我可以自己決定配置隔離存儲還是服務器本身? 如果是,怎么辦?
2)假設該文件對於每個客戶端都是通用的。 然后,我必須提供一些鎖定/解鎖邏輯。 關於WCF,這有什么特別之處嗎? 您能提供有關此事的任何好文章嗎?
使用隔離存儲時,文件由用戶和程序集分隔,因此在您的情況下為IUSR_machine
除非您使用模擬。 因此,您將需要實現文件鎖定/解鎖。 為什么不能使用SQL數據庫作為存儲?
更新:
模擬基本上可以使您的進程在與擁有線程的進程不同的安全性上下文中運行。 來自https://msdn.microsoft.com/zh-cn/library/ms730088(v=vs.110).aspx
通常,客戶端調用服務以使服務代表客戶端執行某些操作。 模擬可以使服務在執行操作時充當客戶端。
另請參見http://blogs.msdn.com/b/saurabs/archive/2012/07/16/wcf-learning-impersonation.aspx
您基本上將類似以下內容放入配置文件中:
<serviceAuthorization impersonateCallerForAllOperations="true" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.