0

我的问题是关于一种方法,我正在寻找帮助我开发解决方案的提示或链接。我有一个 .NET 4.0 Web 表单应用程序,它使用用户和密码的 aspnetdb SQL 数据库进行表单身份验证。该应用程序的一项新功能是使用单点登录的身份验证机制,以允许数千名新用户访问。本质上,当用户通过新的单点登录方法登录时,我将能够将他们识别为具有角色的合法用户。

所以我会有类似HttpContext.Current.Session["email_of_authenticated_user"](他们的身份)和HttpContext.Current.Session["role_of_authenticated_user"](他们的角色)的东西。

重要的是,我不一定想在将要停用的 aspnetdb 数据库中冗余地维护这些用户和角色,但我确实想使用上面的会话对象来允许用户通过应用程序,就好像他们在通过使用表单身份验证。我认为 CustomRoleProviders 或 CustomMemberProviders 没有帮助,因为它们不允许创建会话级用户。

所以我的问题是如何使用我必须“模仿”所有表单身份验证的会话级别用户和角色,例如强制:

[System.Security.Permissions.PrincipalPermission(System.Security.Permissions.SecurityAction.Demand, Role = "Student")]

或者

<authorization>
    <allow users="wilma, barney" />
</authorization>

感谢您的任何指示。

4

1 回答 1

3

我认为您Forms AuthenticationSqlMembershipProvider.

表单身份验证是 ASP.NET 通常用来授权和验证用户的方法。它没有指定如何完成的具体实现。它只提供一种方式,一旦通过身份验证,应用程序可以通过保存为 cookie 的“票证”系统在整个应用程序中使用这些凭据。

本质上,windows中只有两种身份验证,Forms Authentication和Windows Authentication。由于您的新方法不是基于 Windows 的,因此您必须使用表单身份验证(除非您简单地忽略 asp.net 中内置的内容并自己滚动所有内容,这样做有点愚蠢)。

您可能需要研究Windows Identity Foundation,因为它提供了一个可插入的身份体系结构,包括各种基于 Web 的单点登录方法。

于 2010-12-24T00:58:15.290 回答