gpt4 book ai didi

c# - WCF 中的 PrincipalPermission 身份验证错误

转载 作者:行者123 更新时间:2023-11-30 21:08:32 25 4
gpt4 key购买 nike

我正在关注 Pluralsight video on Authentication .

我正在尝试向我的 Web 服务添加简单的 PrinciplePermission 身份验证:

    [PrincipalPermission(SecurityAction.Demand, Role = "Computer\\Group")]
public String testDBConnection()
{
return "success";
}

在我的 WCF 客户端中,我发送:

    client.ClientCredentials.UserName.UserName = "Alice";
client.ClientCredentials.UserName.Password = "alice";

我已经按照视频创建了群组并添加了 Alice,但是现在......

我不断收到错误:

“请求主体权限失败。”

知道哪里出了问题吗?

最佳答案

当请求到达时,您需要一些代码来在服务器上创建 IPrincipal

最简单的方法可能是使用 ASP.NET RoleProvider,您需要为其配置一个行为,例如:

<system.serviceModel>
...
<behaviors>
<serviceBehaviors>
<behavior name=...>
...
<serviceAuthorization principalPermissionMode="UseAspNetRoles"
roleProviderName="MyRoleProvider" />
</behavior>
</serviceBehaviors>
...

和:

<system.web>
...
<roleManager enabled="true" defaultProvider="MyRoleProvider">
<providers>
<clear/>
<add name="MyRoleProvider"
...

如果您以这种方式正确配置了 RoleProvider,那么 Thread.CurrentPrincipal 将自动设置,它应该可以工作。

关于c# - WCF 中的 PrincipalPermission 身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com