首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlRoleProvider:调用Roles.GetRolesForUser时的NullReferenceException

SqlRoleProvider:调用Roles.GetRolesForUser时的NullReferenceException
EN

Stack Overflow用户
提问于 2014-02-07 15:03:32
回答 2查看 3K关注 0票数 7

场景: WCF服务使用SqlRoleProvider与server 2012数据库服务器进行身份验证。WCF托管在IIS7 WCF服务器上。

请查看此错误:

System.NullReferenceException:对象引用没有设置为对象的实例。 (在System.Web.Security.Roles.GetRolesForUser(String用户名)

启用了RoleManagement。

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

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

这怎么可能,有没有人知道这个问题会在哪里发生呢?

诚挚的问候。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-07 15:15:29

http://www.urbandictionary.com/define.php?term=blergh

在Googling上搜索标签堆栈溢出,只要我看到这个站点:http://www.lhotka.net/weblog/CallingRolesGetRolesForUserInAWCFService.aspx

简而言之:很明显,.net 3.5和.net 4之间出现了一些问题。

为了解决这一问题,呼吁:

代码语言:javascript
复制
string[] roles = Roles.Provider.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);

而不是

代码语言:javascript
复制
string[] roles = Roles.GetRolesForUser(ServiceSecurityContext.Current.PrimaryIdentity.Name);

区别在于.Provider,它是在中间添加的。在添加了这个之后,它工作得很好。

票数 14
EN

Stack Overflow用户

发布于 2015-03-12 01:24:59

这个问题听起来像一个asp.net错误。

connect.microsoft.com

解决办法是调整web服务器跟踪级别。例如,在web.config文件中添加以下设置将解决问题,

代码语言:javascript
复制
<system.webServer>
    <tracing>
     <traceFailedRequests>
        <remove path="*"/>
        <add path="*">
         <traceAreas>
            <add provider="ASP" verbosity="Verbose" />
            <!-- Note that the verbosity is set to Warning (default value is Verbose)-->
            <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Warning" />
            <add provider="ISAPI Extension" verbosity="Verbose" />
            <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" />
         </traceAreas>
         <failureDefinitions statusCodes="200-999" />
        </add>
     </traceFailedRequests>
    </tracing>
</system.webServer>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21631032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档