gpt4 book ai didi

wcf - SqlRoleProvider:调用 Roles.GetRolesForUser 时出现 NullReferenceException

转载 作者:行者123 更新时间:2023-12-04 10:07:31 24 4
gpt4 key购买 nike

设想:
WCF 服务使用 SqlRoleProvider 与 Sql Server 2012 数据库服务器进行身份验证。 WCF 托管在 IIS7 网络服务器上。

请看这个错误:

System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.Security.Roles.GetRolesForUser(String username)



角色管理已启用。

在我的本地开发机器(服务器 2012,iis7)上,这工作正常。当我登录并调用该方法时,将检索角色。

在另一台服务器(测试环境)上它不工作。我可以登录(用户已通过用户身份验证并通过 sql server 数据库),但是当我尝试检索该用户的角色时,我得到一个 nullreferenceexception。

这怎么可能,是否有人对可能发生此问题的地方有任何线索?

此致。

最佳答案

blergh

谷歌搜索标签 Stack Overflow 提供我遇到了这个网站:
http://www.lhotka.net/weblog/CallingRolesGetRolesForUserInAWCFService.aspx

简而言之:
显然 .net 3.5 和 .net 4 之间出了点问题。

要解决此问题,请调用:

string[] roles = Roles.Provider.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);

代替
string[] roles = Roles.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);

区别在于 .Provider这是在中间添加的。添加后它工作正常。

关于wcf - SqlRoleProvider:调用 Roles.GetRolesForUser 时出现 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631032/

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