通过WCF验证ASP.Net自定义成员身份用户是否导致未经请求的服务调用?

通过WCF验证ASP.Net自定义成员身份用户是否导致未经请求的服务调用?,wcf,asp.net-membership,membership-provider,Wcf,Asp.net Membership,Membership Provider,好吧,首先是事实 我正在从事一个ASP.Net项目,该项目通过WCF服务验证它的用户。我在共享程序集中有一个CutomMembershipUser类,该类从MembershipUser继承,因为我使用的是自定义成员资格提供程序。这一切都不能改变,因为这超出了我的职权范围 下面是发生的大致情况。我在登录控件中记录了一些代码,看起来像这样 CustomMembershipUser user = (CustomMembershipUser)SecurityBL.GetUser(

好吧,首先是事实

我正在从事一个ASP.Net项目,该项目通过WCF服务验证它的用户。我在共享程序集中有一个
CutomMembershipUser
类,该类从MembershipUser继承,因为我使用的是自定义成员资格提供程序。这一切都不能改变,因为这超出了我的职权范围

下面是发生的大致情况。我在登录控件中记录了一些代码,看起来像这样

            CustomMembershipUser user = (CustomMembershipUser)SecurityBL.GetUser(userName);

            if (user.Customer.ToLower() == "some user")
            {
                //impl omitted
            }
第一行执行时没有问题,我从服务中获得了正确的用户。但是,在第二行中,当我比较
user.Customer
属性时,会向服务发送第二个请求,其中包含一个空的
userName
字符串,该字符串将整个IDE挂起大约30秒,并最终抛出一个
FaultException
,我可以在服务端捕捉到该字符串

显然,我的第一个假设是,在该属性的getter中有一些逻辑,延迟加载该属性,但没有;事实上,它是一个自动实现的属性

更奇怪的是,…在调用代码中,我甚至无法捕获异常,该异常告诉我请求来自与我正在执行的线程不同的线程

此对象上的任何属性访问,无论是被覆盖的还是全新的,都会出现同样的问题

以前有人见过这样的东西吗?我已经挠头两天了,不知道下一步该怎么办

任何帮助都会很好

提前谢谢。
Stimul8d

会员资格非常简单,实际上不了解网络通信,尤其是WCF,因此您的代码中一定有一些不正常的事情发生。真的


如果您想尝试分离出复制效果的最小代码,并将其上传到某个地方,我很乐意看一看。

您能否发布您正在使用的绑定类型和自动生成的属性之一的信息(除非您指的是自动实现的属性,例如get;set;)?您是否能够使用fiddler之类的工具观看第二次呼叫,以查看呼叫内容和发送到服务的内容?这是一个奇怪的问题,我可能会到达这里。哈哈。我已经联系了一段时间了。我用的是BasicHttpBinding,这样看起来就不会有巫毒了。老实说,我甚至没有看到Fiddler中的第一个请求发出,但我认为这取决于请求数据的对象本地保存在dll中并插入成员API,因为我可以看到“正常”服务请求发出的很好。会籍资料是否在幕后进行代理或活动订阅,我不知道???经过深思熟虑后,我同意,…我们的代码肯定有问题,但我甚至无法单独忠实地复制这个问题。我认为这将是一个真正的头痛,直到我们可以做到这一点,但感谢所有的帮助。祝你好运。@stim-祝你好运。如果你想重温这一点,只需添加另一条评论。