Obe*_*lix 7 authentication wcf iis-7 sqlroleprovider sql-server-2012
场景:使用SqlRoleProvider进行Sql Server 2012数据库服务器身份验证的WCF服务.WCF托管在IIS7 Web服务器上.
请看这个错误:
System.NullReferenceException:未将对象引用设置为对象的实例.
在System.Web.Security.Roles.GetRolesForUser(String username)
RoleManagement已启用.
在我的本地开发机器(服务器2012,iis7)上,这工作正常.当我登录并调用该方法时,将检索角色.
在另一台服务器(测试环境)上,它无法正常工作.我可以登录(用户通过用户身份验证并通过sql server数据库)但是当我尝试检索该用户的角色时,我得到一个nullreferenceexception.
这怎么可能,有没有人有任何线索可以解决这个问题?
最好的祝福.
Obe*_*lix 14
谷歌搜索标签Stack Overflow提供了我来到这个网站:http: //www.lhotka.net/weblog/CallingRolesGetRolesForUserInAWCFService.aspx
简而言之:显然在.net 3.5和.net 4之间出现了一些问题.
要解决此问题,请致电:
string[] roles = Roles.Provider.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);
Run Code Online (Sandbox Code Playgroud)
代替
string[] roles = Roles.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);
Run Code Online (Sandbox Code Playgroud)
不同之处在于.Provider中间添加的内容.添加后,它工作正常.
| 归档时间: |
|
| 查看次数: |
2730 次 |
| 最近记录: |