0

我是我学位的学生写作项目,我正在尝试了解 asp.net 会员和用户管理。

我读了很多文章,有些很方便,但有些只是让我感到困惑。阅读本文后:检查 ASP.NET 的成员资格、角色和配置文件

我定义了一个 SqlMembershipProvider,它在我的 sql server 中为我创建了用户数据库。然后我从 .net 的管理工具中定义了一些用户,并在我的 aspx 页面中添加了一个登录控件。

我的问题是:

  • 控件在哪里保存有关登录用户的信息?我怎样才能访问它?

  • 我如何自己定义一个登录功能来验证用户并将他重定向到另一个页面?

  • 如何使用新页面中的 loginstatus 控件来显示有关不同用户登录或匿名的信息?

  • 我想将某些页面限制为某些用户,并根据不同的用户构建动态页面。我需要定义角色并检查用户角色吗?

  • 我还可以使用哪些会员功能来帮助我管理用户和角色?

这是定义提供程序和连接字符串后的配置文件:

<configuration>
    <connectionStrings>
        <add name="igroup20_test2ConnectionString" connectionString="Data Source=Media.ruppin.ac.il;Initial Catalog=igroup20_test2;User ID=igroup20;Password=********" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <system.web>
        <authentication mode="Forms"/>
        <compilation debug="true" targetFramework="4.0"/>
        <membership defaultProvider="CustomizedProvider">
            <providers>
                <add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="igroup20_test2ConnectionString" applicationName="ScottsProject" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"/>
            </providers>
        </membership>
    </system.web>
</configuration>

这些是提供程序在 ms sql 服务器中创建的表:

aspnet_Applications
aspnet_Membership
aspnet_Paths
aspnet_PersonalizationAllUsers
aspnet_PersonalizationPerUser
aspnet_Profile
aspnet_Roles
aspnet_SchemaVersions
aspnet_Users
aspnet_UsersInRoles
aspnet_WebEvent_Events

我真的很喜欢你的回答:)

4

1 回答 1

2

控件在哪里保存有关登录用户的信息?我怎样才能访问它?

您可能指的是这里,登录控件保存凭据信息并让该用户登录并查看安全页面。所有信息都加密存储在登录 cookie 中。它仅将上次登录保存在数据库中,并在计数器上保存总数失败。

您可以通过以下方式阅读:

var authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];

我想将某些页面限制为某些用户,并根据不同的用户构建动态页面。我需要定义角色并检查用户角色吗?

是的,这是你必须做的。

我如何自己定义一个登录功能来验证用户并将他重定向到另一个页面?

在这里,您可以使用登录控件来干扰登录过程,使用OnLoggingIn="OnLogginIn"并返回 e.Cancel = true;以取消登录或返回 true 以使其继续。

或者您可以创建一个新的凭据 cookie,例如:如何手动创建身份验证 cookie 而不是默认方法?

我还可以使用哪些会员功能来帮助我管理用户和角色?

从您了解登录模块的数据库表及其工作方式的那一刻起,您就可以使用 SQL 直接更改它们。

我如何自己定义一个登录功能来验证用户并将他重定向到另一个页面?

您可以使用用户配置文件来存储额外的参数,然后在您的代码中使用它们。在 Web 应用程序中存储用户首选项

在登录控件上OnLoggedIn="OnLoggedIn",您可以读取该参数并将用户发送到正确的页面。

于 2013-04-30T13:53:44.217 回答