如何在库DLL中使用ASP.NET成员资格中的IsInRole

时间:2009-12-20 05:43:07

标签: asp.net dll isinrole

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

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

1 个答案:

答案 0 :(得分:1)

听起来你需要将你的会员机制与ASP.NET分离。

关于如何从Windows窗体应用程序引用ASP.NET成员资格提供程序有一些很好的资源here,它们对控制台应用程序的工作方式相同。

最好的是here(在VB.NET中)。

但是,所有人都遇到同样的基本问题,即恶意用户可以更改其配置以使用自己的授权数据库。 (ASP.NET配置不可供用户使用,因此我们在那里没有相同的问题。)

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