如何在库dll中使用ASP.NET成员身份的IsInRole

如何在库dll中使用ASP.NET成员身份的IsInRole,asp.net,dll,isinrole,Asp.net,Dll,Isinrole,大多数现实世界的web应用程序背后至少有一个dll库。如果我们使用ASP.NET成员资格提供程序,我们如何在dll中调用Roles.IsInRole方法 引用HttpContext的可能性不大。因为,我们有一些控制台应用程序工具,它们使用相同的dll来完成一些批量操作。听起来您需要将您的成员机制与ASP.NET分离 关于如何从Windows窗体应用程序中引用ASP.NET成员资格提供程序,有一些很好的参考资料,对于控制台应用程序也是如此 最好的是(在VB.NET中) 然而,它们都面临着相同的基本

大多数现实世界的web应用程序背后至少有一个dll库。如果我们使用ASP.NET成员资格提供程序,我们如何在dll中调用Roles.IsInRole方法


引用HttpContext的可能性不大。因为,我们有一些控制台应用程序工具,它们使用相同的dll来完成一些批量操作。

听起来您需要将您的成员机制与ASP.NET分离

关于如何从Windows窗体应用程序中引用ASP.NET成员资格提供程序,有一些很好的参考资料,对于控制台应用程序也是如此

最好的是(在VB.NET中)

然而,它们都面临着相同的基本问题,即恶意用户可能会更改其配置以使用自己的授权数据库。(ASP.NET配置对用户不可用,因此我们不会遇到相同的问题。)


因此,更好的方法是直接从ADO.NET中的代码中查询ASP.NET成员数据库(这并不难:它们相当简单),或者推出自己的底层成员资格提供程序接口实现(MSDN上的detailer)。然后,您可以让ASP.NET成员资格提供程序调用您自己的代码,以确定用户是否担任角色,并以与控制台应用程序相同的方式使用此代码。

您可以使用DPAPI提供程序加密web.config的部分。而且,您不应该尝试直接查询asp.net成员数据库。我认为这是一个糟糕的做法,这似乎是一个设计问题。为了更好地帮助您,您是否可以包括任何用例场景?我建议您观看有关自定义成员资格提供程序的视频,该视频可能会解释成员资格提供程序如何工作以及如何使用配置来使用它们。