我正在编写一个WCF Web服务,允许在系统中注册新用户。所以我有以下操作合同:
[ServiceContract]
public interface ISecurityService
{
/// <summary>
/// Register new user in system, if no exceptions were thrown
/// user was registered successfully
/// </summary>
[OperationContract]
[FaultContract(typeof(SecurityFaultException))]
void Register(string userName, string password);
}
如何同步Register
方法调用以防止注册两个具有相同名称的用户,这个想法很简单?
我考虑过使用IsolationLevel.Serializable
,但我不确定这个解决方案。有人可以给我一个很好的建议或分享一些关于WCF服务同步的好习惯。
更新: 我将用户保存在数据库中。
答案 0 :(得分:2)
如果在db中保存用户,则使用默认的Isolationlevel(ReadCommitted)就足够了,只需在UserName列中放置一个唯一的约束或主键即可防止重复值。