0

我创建了一个由 IIS 托管的 WCF 服务。它提供了一些在合同(接口)中指定的方法。这很好用,这里没有问题。

    <services>
        <service name="myNamespace.KliAPI" behaviorConfiguration="ServiceBehavior">
            <endpoint address="" behaviorConfiguration="largeDataBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" name="test" contract="myNamespace.ImyAppAPI" />
            <endpoint address="help" kind="webHttpEndpoint" behaviorConfiguration="helpPageBehavior" contract="myNamespace.ImyAppAPI" />
        </service>
    </services>

我使用 customAuthenticator 是 web.config 来处理登录逻辑。它根据数据库验证用户名和密码,并根据凭据是否与数据库记录匹配返回 TRUE 或 FALSE。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="CustomAuthenticator" type="myNamespace.CustomAuthenticator, myNamespace.IISServiceHost" />
    </modules>
</system.webServer>

问题: 我希望能够在通过合同接口ImyAppAPI公开的方法中获取/读取提供给 CustomAuthenticator 类的用户名公开的方法中获取/读取提供给 CustomAuthenticator 类的用户名。如何将信息从主机共享到服务方法?我认为这特别棘手,因为公开的方法不是以编程方式生成的,而是通过在 web.config 文件中指定合同自动生成的。

例子:

public string[] DownloadUserSpecificData(int[] filters){
    //Here I want access to the username
}
4

1 回答 1

1

关于什么

ServiceSecurityContext.Current.PrimaryIdentity.Name
于 2013-09-17T12:11:53.740 回答